如何访问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?

下一篇: How to read csv into record array in numpy?