我有一个大小为8x8的numpy数组。 这里是numpy的数组:迭代一个numpy数组并对每个元素进行操作
QuantTable = np.array([[16, 11 ,10, 16, 24, 40, 51, 61],
[12, 12, 14, 19, 26, 58, 60, 55],
[14, 13, 16, 24, 40, 57, 69, 56],
[14, 17, 22, 29, 51, 87, 80, 62],
[18, 22, 37, 29, 51, 87, 80, 62],
[24, 35, 55, 64, 81, 109, 103, 77],
[49, 64, 78, 87, 103, 121, 120, 101],
[72, 92, 95, 98, 112, 100, 103, 99]])
我想在阵列中的元素执行的操作。 我已经创建了一个接受缩放因子值和Numpy数组的函数。 这就是:
def quantizationTable(Qval, QuantTable):
if Qval < 50:
scalingFactor = 5000/Qval
for x in range(QuantTable):
for y in range(QuantTable):
QuantTable[x][y] = ((scalingFactor * QuantTable[x][y] + 50/100)
if QuantTable[x][y] == 0:
QuantTable[x][y] = 1
return QuantTable
else:
scalingFactor = 200 - 2(Qval)
for x in range(QuantTable):
for y in range(QuantTable):
QuantTable[x][y] = ((scalingFactor * QuantTable[x][y] + 50/100)
if QuantTable[x][y] == 0:
QuantTable[x][y] = 1
return QuantTable
我无法遍历数组numpy的过去,我的执行操作
。我试图将公式 ((比例因子值* numpy数组的元素+ 50)/ 100)应用到numpy数组的每个元素并返回修改后的数组。 有人可以帮忙吗?
'我无法遍历numpy数组并执行我的操作.' - 详细说明? – Divakar
为什么是循环? 'return scalingFactor * QuantTable + 50/100' – Feodoran
因为我需要对每个元素执行操作。如果我的逻辑错误,请纠正我。谢谢。 – TheTank