分配给 NumPy 中的列

Posted

技术标签:

【中文标题】分配给 NumPy 中的列【英文标题】:Assigning to columns in NumPy 【发布时间】:2012-06-10 23:59:49 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

a[:,1] 表示第 1 列的所有元素。参见 numpy Basic Slicing and Indexing。【参考方案2】:
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x

【讨论】:

以上是关于分配给 NumPy 中的列的主要内容,如果未能解决你的问题,请参考以下文章

根据R中的查找值将值分配给不同的列

将预定义的数字分配给数据框中的列行值

Numpy:将值分配给具有索引列表的二维数组

如何将张量值分配给numpy数组[重复]

如何通过索引将 scipy.sparse 矩阵分配给 NumPy 数组?

NotImplementedError:分配中的无效类型