40

如何使用 NumPy 编写以下 MATLAB 代码?

A = zeros(5, 100);
x = ones(5,1);
A(:,1) = x;

分配给行似乎很容易,但我找不到将数组分配给另一个数组的列的示例。

4

2 回答 2

67

使用a[:,1] = x[:,0]. 您需要x[:,0]将 的列选择x为单个 numpy 数组。如果您可以选择如何格式化x,最好不要一开始就将其设为二维数组,而仅将其设为常规(行)数组:

>>> a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> x = numpy.ones(5)
>>> x
array([ 1.,  1.,  1.,  1.,  1.])
>>> a[:,1] = x
>>> a
array([[ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.]])
于 2012-06-06T22:32:26.780 回答
11
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x
于 2012-06-06T22:32:21.190 回答