如何一次性通过不同的值对 3d NumPy 数组的不同列进行多个处理?
How to multiple different columns of 3d NumPy array by different values in one go?
我有一个这样的示例数组:
x = np.array([[[1, 1, 1], [1, 1, 1], [1, 1, 1]], [[2, 2, 2], [2, 2, 2], [2, 2, 2]], [[3, 3, 3], [3, 3, 3], [3, 3, 3]]])
我可以毫无问题地将所有值乘以 2:
print(x * 2)
>>> [[[2 2 2]
[2 2 2]
[2 2 2]]
[[4 4 4]
[4 4 4]
[4 4 4]]
[[6 6 6]
[6 6 6]
[6 6 6]]]
太棒了!
我需要做的是将第一个“列”中的所有数组乘以 2,在第二个“列”中乘以 4,在第三个“列”中乘以 3,这样:
print(result)
>>> [[[2 2 2]
[4 4 4]
[3 3 3]]
[[4 4 4]
[8 8 8]
[6 6 6]]
[[6 6 6]
[12 12 12]
[9 9 9]]]
有没有像我乘以 2 那样的 numpy 语法?
将因子做成一个 3 X 1 数组,然后乘以 x
:
x * np.array([2,4,3]).reshape(-1, 1)
#[[[ 2 2 2]
# [ 4 4 4]
# [ 3 3 3]]
# [[ 4 4 4]
# [ 8 8 8]
# [ 6 6 6]]
# [[ 6 6 6]
# [12 12 12]
# [ 9 9 9]]]
您可以阅读有关 numpy broadcasting here 的更多信息。
我有一个这样的示例数组:
x = np.array([[[1, 1, 1], [1, 1, 1], [1, 1, 1]], [[2, 2, 2], [2, 2, 2], [2, 2, 2]], [[3, 3, 3], [3, 3, 3], [3, 3, 3]]])
我可以毫无问题地将所有值乘以 2:
print(x * 2)
>>> [[[2 2 2]
[2 2 2]
[2 2 2]]
[[4 4 4]
[4 4 4]
[4 4 4]]
[[6 6 6]
[6 6 6]
[6 6 6]]]
太棒了!
我需要做的是将第一个“列”中的所有数组乘以 2,在第二个“列”中乘以 4,在第三个“列”中乘以 3,这样:
print(result)
>>> [[[2 2 2]
[4 4 4]
[3 3 3]]
[[4 4 4]
[8 8 8]
[6 6 6]]
[[6 6 6]
[12 12 12]
[9 9 9]]]
有没有像我乘以 2 那样的 numpy 语法?
将因子做成一个 3 X 1 数组,然后乘以 x
:
x * np.array([2,4,3]).reshape(-1, 1)
#[[[ 2 2 2]
# [ 4 4 4]
# [ 3 3 3]]
# [[ 4 4 4]
# [ 8 8 8]
# [ 6 6 6]]
# [[ 6 6 6]
# [12 12 12]
# [ 9 9 9]]]
您可以阅读有关 numpy broadcasting here 的更多信息。