Python 从numpy中的另一个数组中减去数组的数组
有没有一种简单的方式来计算下一个问题?我真的很想使用numpy,因为数组比这个示例大得多Python 从numpy中的另一个数组中减去数组的数组,python,arrays,numpy,Python,Arrays,Numpy,有没有一种简单的方式来计算下一个问题?我真的很想使用numpy,因为数组比这个示例大得多 a = np.array([[5, 2, 3, 4], [6, 3, 6, 6], [9, 1, 4, 6]]) b = np.min(a,1) print(a) # [[5 2 3 4] # [6 3 6 6] # [9 1 4 6]] print(b) # [2 3 1] print(a-b) # ValueError: operands could not be broadcast toge
a = np.array([[5, 2, 3, 4], [6, 3, 6, 6], [9, 1, 4, 6]])
b = np.min(a,1)
print(a)
# [[5 2 3 4]
# [6 3 6 6]
# [9 1 4 6]]
print(b)
# [2 3 1]
print(a-b) # ValueError: operands could not be broadcast together with shapes (3,4) (3,)
# What I want:
# [[3 0 1 2]
# [3 0 3 3]
# [8 0 3 5]]
您可以这样做:
print(a-b.reshape(-1,1))
您可以这样做:
print(a-b.reshape(-1,1))
这将完成以下工作:
print(a-b.reshape(len(b),-1))
这张照片
array([[3, 0, 1, 2],
[3, 0, 3, 3],
[8, 0, 3, 5]])
这将完成以下工作:
print(a-b.reshape(len(b),-1))
这张照片
array([[3, 0, 1, 2],
[3, 0, 3, 3],
[8, 0, 3, 5]])
将keepdims=True与np.min一起使用。请参阅文档。感谢您的快速响应,这解决了问题。现在我明白了,我必须重新调整数组的形状。如果在最小值减少的情况下保持DIM的数量不变,则不需要重新调整。我理解,通过设置标志来保持尺寸不变更符合逻辑。在np.min中使用keepdims=True。请参阅文档。感谢您的快速响应,这解决了问题。现在我明白了,我必须重塑数组。如果在最小值减少的情况下保持DIM的数量不变,则不需要重塑。我理解,通过设置标志来保持尺寸不变更符合逻辑。