gpt4 book ai didi

python - 展平 2D 数组 1D Sum

转载 作者:行者123 更新时间:2023-12-01 00:27:57 25 4
gpt4 key购买 nike

我试图理解为什么我的问题解决方案不起作用。

我有一个2D数组,它的元素是RGB数组,例如:[ [30, 60, 90], [30, 51, 255], ..]

我试图将每个数组展平为 RGB 的平均值,因此对于上面的 2D 数组来说,它是:[60, 366, ..]

这是我的尝试:

# import image processing libraries
from __future__ import print_function
import sys
from PIL import Image
import numpy as np

# open a specific image from file and save it as an image object to print its info
im = Image.open("ascii-pineapple.jpg", 'r')
print(im.format, im.size, im.mode)

# save image pixels as a list of tuples in the form of RGB
pix_val = list(im.getdata())
pix_array = [list(item) for item in pix_val] #turn tuples into arrays
brightness_array = []

for i, x in enumerate(pix_array):
brightness_array[i] = sum(x)
print(str(i) + " " + str(sum(x)))

因此,对于我的 for 循环,它告诉我 IndexError:列表分配索引超出范围 。这对我来说很奇怪,因为 print 语句显示了数组的所有索引,以及将进入该索引的元素。

我对此很陌生,因此如果能指出我做错了什么,我们将不胜感激。谢谢!

最佳答案

您有一个空的列表 brightness_array = []。里面什么也没有。您无法为空的列表建立索引。也许您想要brightness_array.append(sum(x))

将代码更改为:

brightness_array = []
for i, x in enumerate(pix_array):
brightness_array.append(sum(x)) # will append the `sum` to the `brightness_array`
print("{} {}".format(i, sum(x)))

关于python - 展平 2D 数组 1D Sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58407149/

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