繁体   English   中英

如何从Numpy中提取列

[英]How to Extract Columns from Numpy

我有一个numpy数组,它是300行和5列

X[X[:,0]==1,[1,2]]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-154-de5e74bc1a0b> in <module>()
----> 1 X[X[:,0]==1,[1,2]]

ValueError: shape mismatch: objects cannot be broadcast to a single shape 

如何使这项工作? 我想过滤第一列(等于1),但返回第二列和第三列的副本。

分开两个索引用例是最简单的。 首先查看第一列,选择适当的行,然后从该数组中选择列1和2:

>>> a = np.random.randint(0, 2, (3, 5))
>>> a
array([[0, 0, 0, 0, 1],
       [1, 0, 1, 0, 1],
       [0, 0, 1, 1, 0]])

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

问题中的代码a[a[:,0] == 1, [1,2]]看起来在语法上相似,但是却有所不同。

例如a[a[:,0] == 0, [1,2]]是,在的情况下a ,相当于a[[0,2], [1,2]] 这个索引挑选出从正好两个元件a :在连续元件0 ,列1和列处的元件2 ,列2 它不会选择数组的行和列。

暂无
暂无

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

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