使用逻辑运算符索引 numpy 数组

2024-01-03

我有一个 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) 的数组。

有没有什么合理的方式来选择索引?或者:这种情况有必要使用口罩吗?


这应该有效

np.where((a1[:,1]>l1) & (a1[:,1]<l2))

or

np.where(np.logical_and(a1[:,1]>l1, a1[:,1]<l2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用逻辑运算符索引 numpy 数组 的相关文章

随机推荐