如何访问NumPy多维数组的第i列?
假设我有:
test = numpy.array([[1, 2], [3, 4], [5, 6]])
test[i]
让我第i行数组(例如[1, 2]
)。 我如何访问第i列? (例如[1, 3, 5]
)。 另外,这是一个昂贵的操作?
>>> test[:,0]
array([1, 3, 5])
同样的,
>>> test[1,:]
array([3, 4])
让你访问行。 这在NumPy参考的1.4节(索引)中有介绍。 这很快,至少在我的经验。 这肯定比访问循环中的每个元素快得多。
如果你想一次访问多个列,你可以这样做:
>>> test = np.arange(9).reshape((3,3))
>>> test
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> test[:,[0,2]]
array([[0, 2],
[3, 5],
[6, 8]])
>>> test[:,0]
array([1, 3, 5])
这个命令给你一个行向量,如果你只是想循环它,这很好,但如果你想与其他一些维数为3xN的数组一起使用,
ValueError:所有输入数组必须具有相同的维数
而
>>> test[:,[0]]
array([[1],
[3],
[5]])
为您提供了一个列向量,以便您可以进行连接操作或hstack操作。
例如
>>> np.hstack((test, test[:,[0]]))
array([[1, 2, 1],
[3, 4, 3],
[5, 6, 5]])
链接地址: http://www.djcxy.com/p/50983.html
上一篇: How to access the ith column of a NumPy multidimensional array?