在NumPy中给列赋值

44

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

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

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

2个回答

70

使用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.]])

1
a[:,1] 意味着第一列的所有元素。请参阅 numpy 的 Basic Slicing and Indexing - Arthur

11
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接