我如何重塑这个numpy数组?

时间:2019-06-19 12:10:55

标签: python arrays numpy reshape

我无法调整此数组的尺寸:

Shape of array:
(1, 81539)

Array:
[[ 906.78302002   10.00976562   23.4375     ... 4594.27587891
49.99263      41.85557556]]

我正在使用

reshape(-1,36)

所以应该有36列和所需的行数来存储数组中的所有数据。

旁注:我是python的新手

import pandas as pd
import numpy as np


trainData_temp = pd.read_csv('data/trainData.csv', sep=';')

numArray = np.array(trainData_temp.values).transpose()
print('Shape of array:')
print(numArray.shape)
print('Array:')
print(numArray)

numArray.reshape(-1, 36)
print(numArray)


Results:

Traceback (most recent call last):
Shape of array:
(1, 81539)
Array:
[[ 906.78302002   10.00976562   23.4375     ... 4594.27587891
49.99263      41.85557556]]

File "C:/Users/Timo/PycharmProjects/aimlHamelnProj2/csvModify.py", line 18, 
in <module>
numArray.reshape(-1, 36)
ValueError: cannot reshape array of size 81539 into shape (36)

2 个答案:

答案 0 :(得分:1)

这是正确的,因为您只能将数组整形为具有相同数量元素的矩阵。

例如:

import numpy

array = np.random.rand(3,3)
array.reshape(-1,3)

得出3x3矩阵,但是

array = np.random.rand(3,3)
array.reshape(-1,5)

会给你同样的错误。

答案 1 :(得分:0)

问题是,csv文件的第一个值已被解释为列的名称。因此,缺少一个价值。

感谢您的帮助!