我有三个数组,一个包含基于某些条件的屏蔽值:
a = numpy.ma.MaskedArray(other_array, condition)
(最初我使用了蒙面数组,因为我的条件是一个变量,它使得用其他数据集更容易绘图以保持我的数组固定长度。现在我导出我的数据以便由其他未编写的程序进行分析由我,它无法处理' - ')
所以我的数组有以下形式:
a = [1,--,3]
b = [4,5,6]
c = [7,8,9]
我想迭代a,识别包含掩码值的任何索引' - ',然后从所有数组中删除该索引:
a = [1,3]
b = [4,6]
c = [7,9]
实际上,b和c很长,掩盖的指数没有规则间隔。
谢谢!
答案 0 :(得分:1)
如果只有3个列表,您可以使用 pop() 功能从列表B&中删除索引。 C.将索引传递给 pop() ,在列表A中为“ - ”。
for i in range(len(a)):
if numpy.ma.is_masked(a[i]):
b.pop(i)
c.pop(i)
它将从列表B&中删除该索引。 C,其中' - '出现在列表A中。
答案 1 :(得分:0)
尝试克隆数组并弹出它并替换临时数组,如
a = [1,'--',3]
b = [4,5,6]
c = [7,8,9]
t=a[:]
for i in range(len(a)):
try:
value = int(a[i])
except ValueError:
t.pop(i)
b.pop(i)
c.pop(i)
a=t
print a
print b
print c
当屏蔽值具有相同的符号时,您也可以使用相等
a = [1,'--',3]
b = [4,5,6]
c = [7,8,9]
t=a[:]
for i in range(len(a)):
if a[i]=='--':
t.pop(i)
b.pop(i)
c.pop(i)
a=t
print a
print b
print c