Skip to main content
 首页 » 编程设计

python之当第二个数组 > 0 时创建新数组

2025年05月04日33lori

我正在运行 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])