我有两个不同大小的数组,我想在for循环中对它们执行逻辑函数。例如,如果我有:
array1 = [6,7,8]
array2 = [1,2,3,4,5]
我想把array1的每个元素减去array2的每个元素
[6-1,6-2,6-3,6-4,6-5],[7-1,7-2,7-3,7-4,7-5],[8-1,8-2,8-3,8-4,8-5]
也就是从array1的每个元素减去array2的每个元素
所以我试着做一个for循环,比如:
for i in range(len(array1)):
ar = array1[i]-array2
还有
for i in range(len(array1)):
for j in range(len(array2)):
ar = array1[i]-array2[j]
但这两个似乎都不起作用
第一种方法似乎是返回正确形状的数组,但肯定不是正确的值。你知道吗
我希望它以不同的数组返回,因为实际上,我的样本量非常大。你知道吗
循环解决方案:
输出:
以下解决方案应使用列表理解:
您甚至可以在一行中使用两个for循环来编写这个列表:
我们可以用
itertools.product
来解决这个问题它的工作原理是product以元组的形式返回两个数组的笛卡尔积,因此:
然后我们简单地使用列表理解将
sub
函数应用于每个元组。你知道吗相关问题 更多 >
编程相关推荐