如何访问 NumPy 多维数组的第 i 列?

新手上路,请多包涵

鉴于:

 test = numpy.array([[1, 2], [3, 4], [5, 6]])

test[i] 给出第 i 行(例如 [1, 2] )。如何访问第 i 列? (例如 [1, 3, 5] )。另外,这会是一项昂贵的操作吗?

原文由 lpl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 321
2 个回答

要访问第 0 列:

 >>> test[:, 0]
array([1, 3, 5])

要访问第 0 行:

 >>> test[0, :]
array([1, 2])

NumPy 参考资料 的第 1.4 节(索引)对此进行了介绍。这很快,至少根据我的经验。它肯定比访问循环中的每个元素要快得多。

原文由 mtrw 发布,翻译遵循 CC BY-SA 4.0 许可协议

>>> test[:,0]
array([1, 3, 5])

这个命令给你一个行向量,如果你只是想遍历它,没关系,但如果你想 hstack 与一些其他维度为 3xN 的数组,你将有

> ValueError: all the input arrays must have same number of dimensions
>
> ```

尽管

test[:,[0]] array([[1], [3], [5]])


给你一个列向量,这样你就可以进行连接或 hstack 操作。

例如

np.hstack((test, test[:,[0]])) array([[1, 2, 1], [3, 4, 3], [5, 6, 5]])

”`

原文由 Cloud 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题