Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,Numpy:无法将Numpy数组的值分配给矩阵的列_Python_Arrays_Numpy - Fatal编程技术网

Python,Numpy:无法将Numpy数组的值分配给矩阵的列

Python,Numpy:无法将Numpy数组的值分配给矩阵的列,python,arrays,numpy,Python,Arrays,Numpy,我是Python新手,有一个语法问题我正在努力理解。 我有一个numpy矩阵: x = np.array([[1, 2, 3, 6], [2, 4, 5, 6], [3, 8, 7, 6]]) 我想对它的每一列应用一个Softmax函数。 代码非常简单。在不报告整个循环的情况下,假设我将其作为第一列: w = x[:,0] # select a column w = np.exp(w) # compute softmax in tw

我是Python新手,有一个语法问题我正在努力理解。 我有一个numpy矩阵:

x = np.array([[1, 2, 3, 6],
              [2, 4, 5, 6], 
              [3, 8, 7, 6]])
我想对它的每一列应用一个Softmax函数。 代码非常简单。在不报告整个循环的情况下,假设我将其作为第一列:

w = x[:,0]  # select a column
w = np.exp(w)  # compute softmax in two steps
w = w/sum(w)
x[:,0] = w   # reassign the values to the original matrix
但是,与
w:array([0.09003057,0.24472847,0.66524096])
的值不同,只为矩阵分配了一列零,返回:

 np.array([[0, 2, 3, 6],
           [0, 4, 5, 6], 
           [0, 8, 7, 6]])
为什么呢?我怎样才能纠正这个问题?
谢谢

矩阵的值类型为
int
,分配时,softmax值转换为
int
,因此为零

按如下方式创建矩阵:

x = np.array([[1, 2, 3, 6],
              [2, 4, 5, 6], 
              [3, 8, 7, 6]]).astype(float)
现在,在指定softmax值之后:

w = x[:,0]  # select a column
w = np.exp(w)  # compute softmax in two steps
w = w/sum(w)
x[:,0] = w   # reassign the values to the original matrix
x
结果是:

array([[0.09003057, 2., 3., 6.],
       [0.24472847, 4., 5., 6.],
       [0.66524096, 8., 7., 6.]])

将数据类型更改为float,然后分配。