使用numpy将大数组拆分为许多子数组

时间:2016-11-08 03:41:09

标签: python arrays numpy

所以,我正在使用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:新数组的总大小必须保持不变”错误?

0 个答案:

没有答案