gpt4 book ai didi

python - numpy 数组的每个元素乘法/加法

转载 作者:行者123 更新时间:2023-11-28 22:11:55 28 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。

有一张图片,我只需要重新计算非零像素。我想通过 numpy 来完成,因为我处理了数千张图像并且我需要它的速度。

这是一个维度较低的简化示例。

假设我有以下矩阵:

[[0,  0,  1],
[0, 2, 0],
[0, 6, 0]]

假设我想将每个值乘以 2.0 并加上 0.5

matrix = matrix * 2.0 + 0.5

结果是:

[[0.5,  0.5,   2.5],
[0.5, 4.5, 0.5],
[0.5, 12.5, 0.5]]

我希望它是:

[[0,  0,   2.5],
[0, 4.5, 0],
[0, 12.5, 0]]

显然我可以在 for 循环中使用 if pixel == 0: continue 来完成它,但它会非常慢。而且我无法摆脱只留下规范化组件的添加。

所以我一直在想,是否可以通过numpy来完成?

最佳答案

您可以使用 np.where为了根据指定条件从 x 或 y 中进行选择:

a = np.array([[0,  0,  1],
[0, 2, 0],
[0, 6, 0]])

np.where(a!=0, a*2. + 0.5, a)

array([[ 0. , 0. , 2.5],
[ 0. , 4.5, 0. ],
[ 0. , 12.5, 0. ]])

关于python - numpy 数组的每个元素乘法/加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55335612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com