我正在运行 Python 2.7。
我有一个名为“altitude”的数组,包含以下几点
[0,1,2,3,4,5,6,7,8,9]
我还有一个名为“arming_pin”的数组
[0,0,0,0,0,0,1,1,1,1]
在我的程序中,当 arming_pin 大于零时,我想使用“altitude”数组数据点,并在 “arming_pin”
= 为 0 时忽略之前的点。我想调用这个新数组 "altitude_new"
。 “altitude_new”数组看起来像:
[6,7,8,9]
如何在 python 中创建这个新数组?使用某种条件语句?
最佳答案
您可以使用 zip
在列表推导中过滤数组的函数:
>>> f=[0,1,2,3,4,5,6,7,8,9]
>>> sec=[0,0,0,0,0,0,1,1,1,1]
>>>
>>> [i for i,j in zip(f,sec) if j]
[6, 7, 8, 9]
您还可以使用 itertools.compress
当您处理更大的列表时,它会更有效:
>>> from itertools import compress
>>> list(compress(f,sec))
[6, 7, 8, 9]
或者使用numpy.compress
:
>>> import numpy as np
>>> np.compress(sec,f)
array([6, 7, 8, 9])
关于python - 当第二个数组 > 0 时创建新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31388247/