繁体   English   中英

如何用numpy数组中的值替换一列?

[英]How to replace one column by a value in a numpy array?

我有这样的数组

import numpy as np

a = np.zeros((2,2), dtype=np.int)

我想用值1替换第一列。 我做了以下事情:

a[:][0] = [1, 1] # not working
a[:][0] = [[1], [1]] # not working

相反,当我更换行时,它工作!

a[0][:] = [1, 1] # working

我有一个大数组,所以我不能用值替换值。

您可以按如下方式替换第一列:

>>> a = np.zeros((2,2), dtype=np.int)
>>> a[:, 0] =  1
>>> a
array([[1, 0],
       [1, 0]])

这里a[:, 0]表示“从列0中选择所有行”。 1在所选列中广播,产生所需的数组(尽管可以,但不必使用列表[1, 1] )。

您的语法a[:][0]表示“从数组a选择所有行,然后选择第一行”。 类似地, a[0][:]的意思是“选择的第一行a ,然后再次选择该整行”。 这就是为什么你可以成功地替换行而不是列 - 为轴1而不仅仅是轴0进行选择是必要的。

你可以这样做:

import numpy as np

a = np.zeros((2,2), dtype=np.int)
a[:,0] = np.ones((1,2), dtype=np.int)

请参阅访问np矩阵列

使用正确的索引选择目标列,然后使用=将值赋给它。 Numpy将为您处理剩下的事情。

>>> a[::,0] = 1
>>> a
array([[1, 0],
       [1, 0]])

阅读有关numpy索引的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM