我有一个 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) 的数组。
有没有什么合理的方式来选择索引?或者:这种情况有必要使用口罩吗?