如果我有两个列表并且想要迭代从另一个列表中减去一个列表,我将如何处理?我想到了广播。现在我有:
array1 = [0,2,2,0]
array2 = [2,2,0,1]
我想从 array2 中的每个值中减去 array1 并创建一个新的输出矩阵:
output = [2, 0, 0, 2,
2, 0, 0, 2,
0, -2, -2, 0,
1, -1, -1, 1]
所以最终它是一个 4x4 矩阵。
这可能吗?使用广播是最简单的方法吗?我正在考虑将 array2 中的每一行值放入它自己的数组中,使用广播从 array2 中减去该值,然后将末尾的所有数组求和到一个大数组中(使用 Numpy)...有没有一种更简单的方法? >
如果我有两个列表并且想要迭代从另一个列表中减去一个列表,我将如何处理?我想到了广播。现在我有:
array1 = [0,2,2,0]
array2 = [2,2,0,1]
我想从 array2 中的每个值中减去 array1 并创建一个新的输出矩阵:
output = [2, 0, 0, 2,
2, 0, 0, 2,
0, -2, -2, 0,
1, -1, -1, 1]
所以最终它是一个 4x4 矩阵。
这可能吗?使用广播是最简单的方法吗?我正在考虑将 array2 中的每一行值放入它自己的数组中,使用广播从 array2 中减去该值,然后将末尾的所有数组求和到一个大数组中(使用 Numpy)...有没有一种更简单的方法? >
最佳答案
使用numpy
进行广播:
>>> a1 = np.array([0,2,2,0])
>>> a2 = np.array([2,2,0,1])
>>> a2[:, np.newaxis] - a1
array([[ 2, 0, 0, 2],
[ 2, 0, 0, 2],
[ 0, -2, -2, 0],
[ 1, -1, -1, 1]])
关于python - Python 迭代矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44637166/