【发布时间】:2014-01-25 07:31:12
【问题描述】:
我有一个 2d numpy 数组,例如:
import numpy as np
a1 = np.zeros( (500,2) )
a1[:,0]=np.arange(0,500)
a1[:,1]=np.arange(0.5,1000,2)
# could be also read from txt
然后我想选择与一个条件匹配的切片对应的索引,例如范围 (l1,l2) 中包含的所有值 a1[:,1]:
l1=20.0; l2=900.0; #as example
我想用简洁的表达方式。但是,两者都不是:
np.where(a1[:,1]>l1 and a1[:,1]<l2)
(它给出 ValueError 并建议使用 np.all,在这种情况下我不清楚);两者都没有:
np.intersect1d(np.where(a1[:,1]>l1),np.where(a1[:,1]<l2))
正在工作(它提供不可散列的类型:'numpy.ndarray')
然后我的想法是使用这些索引来映射另一个大小为 (500,n) 的数组。
有没有合理的方式来选择索引?或者:在这种情况下是否需要使用一些掩码?
【问题讨论】:
标签: python arrays numpy indexing