我有一个关于如何为数组或rec.array使用多个指标的简单问题。更具体地说,我想隔离符合多个规定的阵列中的单元。例如:
import numpy as np
test = np.ones(5)
test_rec = test.view(recarray)
test_rec.age = np.array([0,1,2,1,4])
test_rec.sex = np.array([0,1,1,0,0])
我想隔离test_rec,其中test_rec年龄为1且test_rec.sex为1,即:
test_rec[test_rec.age==1 and test_rec.sex==1]
不幸的是,这不起作用。
答案 0 :(得分:1)
age_is_one = test_rec.age == 1
sex_is_one = test_rec.sex == 1
age_and_sex = numpy.logical_and(age_is_one, sex_is_one)
indices = numpy.nonzero(age_and_sex)
test_rec[indices]
请参阅:
答案 1 :(得分:1)
使用logical_and()或bitwise_and(),你可以使用&运算符执行bitwise_and():
test_rec[(test_rec.age==1) & (test_rec.sex==1)]
括号很重要,因为&低于==。