如何使用NumPy编写下面的MATLAB代码?
A = zeros(5, 100);
x = ones(5,1);
A(:,1) = x;
对于行的赋值似乎很容易,但我找不到一个将数组分配给另一个数组列的示例。
使用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 = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x
a[:,1]
意味着第一列的所有元素。请参阅 numpy 的 Basic Slicing and Indexing。 - Arthur