【问题标题】:How do i reshape this numpy array?我如何重塑这个 numpy 数组?
【发布时间】:2019-06-19 12:10:55
【问题描述】:

我无法重塑此数组的尺寸:

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)

【问题讨论】:

标签: python arrays numpy reshape


【解决方案1】:

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

例如:

import numpy

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

产生一个 3x3 矩阵,但是

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

会给你同样类型的错误。

【讨论】:

    【解决方案2】:

    嗯,问题是,csv 文件的第一个值已被解释为列的名称。所以少了一个值..

    感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2021-04-18
      • 2018-09-02
      • 2022-12-06
      • 2017-08-15
      • 1970-01-01
      • 2017-11-11
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多