说我有2个名单:
list1 = np.array([1,4,2,5])
list2 = np.array([2,3,4,5])
我一直在乘以
[2,12,8,25]
如果我只想在list1中乘以小于3的那个怎么办?
所以我会得到
仅[2,8]
答案 0 :(得分:2)
像这样:
[i*j for i,j in zip(list1,list2) if i < 3]
在zip(list1,list2)
之后,您可以添加条件。如果不满足该条件,则将跳过该特定项目。因此,您可以添加所需的限制。
答案 1 :(得分:1)
这是boolean indexing的好例子:
In [3]: list1[list1<3] * list2[list1<3]
Out[3]: array([2, 8])
答案 2 :(得分:0)
生成一个掩码,其中list1
中的值符合您的条件,然后使用它来掩盖您的数组并执行乘法运算:
In [315]:
list1 = np.array([1,4,2,5])
list2 = np.array([2,3,4,5])
mask = np.where(list1 < 3)
list1[mask] * list2[mask]
Out[315]:
array([2, 8])