所以,我正在使用numpy并且我正在尝试使用reshape来创建1500的列数并生成所需数量的行以满足原始数组中的数据量(所以如果我有4500个元素,那么行将是3)。
我一定不能理解如何正确使用重塑,任何查询都没有任何帮助我。
这是我的代码:
def grayscale_pixel(hex_digit):
gray_value = int(hex_digit, 16) * 16 + 15
return (gray_value, gray_value, gray_value)
# Read in file arguments.
from os import sys
import numpy as np
import math
input_file_name = '0A32eTdBKayjCWhZqDOQ.bytes'
# Open input file.
try:
file = open(input_file_name)
except IOError:
print("The file %s does not exist." % fileName)
sys.exit(1)
# Retrieve all of the hex digits from the file.
contents = file.read()
contents = contents.replace("?", "")
contents = "".join(contents.split())
pixels = np.array([grayscale_pixel(digit) for digit in contents])
columns = 1500
rows = (math.floor(pixels.size/columns)) * columns
twodpixels = np.reshape(pixels[:rows*columns], (rows,columns))
正如你所看到的,我正在制作“像素”,其中有许多1x3的基质,其中:
([15, 15, 15],
[15, 15, 15],
[15, 15, 15],
... )
我将分析一堆文件,但我需要它们都是相同数量的列,在本例中为1500.
我也试图做到这一点,所以我没有丢失任何数据,所以我被建议切断一些像素数据,使其全部适合,因为数据的损失可以忽略不计。所以,为了做到这一点,我采用像素大小的倍数乘以我想要的1500列。
我做错了什么,因为我不断得到“ValueError:新数组的总大小必须保持不变”错误?