列表理解而不是在for循环中使用append

问题描述 投票:0回答:1

我想使用列表理解而不是使用追加方法,因为它使代码运行得更快,但是当它是 numpy 数组时它不起作用。

import numpy as np

a = np.array([1, 2 , 4])
b = np.array([6, 5 , 2])
A = []
B = []
for i in range(0, 3):
    if a[i] > value1 and b[i] > value1:
        A.append(a[i])
        B.append(b[i])
               

例如我正在尝试这样的事情:

A = [a[i] for i in range(1, 3) if a[i] > value1 and b[i] > value1]

最后有没有一种方法可以定义一个通用函数,该函数根据上述示例中的 if 条件将数字数组中的元素追加到新列表中。

python numpy python-2.7 random
1个回答
0
投票

Numpy 数组没有追加方法。您也不应该将

for
循环与 numpy 数组一起使用,因为这很慢。相反,使用矢量化操作并利用广播。

cond = a > value1 & b > value1
A = a[cond]
B = b[cond]
© www.soinside.com 2019 - 2024. All rights reserved.