这是一个 3 维 numpy 数组:
import numpy as np
m = np.array([
[
[1,2,3,2], [4,5,6,3]
],
[
[7,8,9,4], [1,2,3,5]
]
])
对于每个元组,我需要将前三个值乘以最后一个值(除以 10 并四舍五入),然后仅保留 3 个结果。例如在[1,2,3,2]
中:
1
变为:round(1 * 2/10)
=0
2
变为:round(2 * 2/10)
=0
3
变为:round(3 * 2/10)
=1
因此,[1,2,3,2]
变为:[0,0,1]
。
完整的结果将是:
[
[
[0,0,1], [1,2,2]
],
[
[3,3,4], [1,1,2]
]
]
我尝试将 alpha
变量中每个元组的最后一个值与 rgb
变量中的前 3 个值分开。
alpha = m[:, :, 3] / 10
rgb = m[:, :, :3]
但是之后我是Python的初学者,我真的不知道如何处理这些数组。
非常欢迎经验丰富的 Python 人员提供一点帮助。
最佳答案
试试这个
n = np.rint(m[:,:,:3] * m[:,:,[-1]] / 10).astype(int)
Out[192]:
array([[[0, 0, 1],
[1, 2, 2]],
[[3, 3, 4],
[0, 1, 2]]])
关于python - 在 numpy 数组的第三个维度中,将前三个值乘以第四个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59990455/