2017-12-20 1 views
1

내가 내 데이터 벡터를 바꿀 싶지만 코드에 ValueError : 새로운 배열의 전체 크기는 변경해야합니다 (모양 변경에 대한 NumPy와)

from pandas import read_csv 
import numpy as np 
#from pandas import Series 
#from matplotlib import pyplot 

series =read_csv('book1.csv', header=0, parse_dates=[0], index_col=0, squeeze=True) 

A= np.array(series) 
B = np.reshape(10,10) 

print (B) 

을 실행할 때 나는 오류

result = getattr(asarray(obj), method)(*args, **kwds)

ValueError: total size of new array must be unchanged

내 데이터를 발견

Month xxx 
1749-01 58 
1749-02 62.6 
1749-03 70 
1749-04 55.7 
1749-05 85 
1749-06 83.5 
1749-07 94.8 
1749-08 66.3 
1749-09 75.9 
1749-10 75.5 
1749-11 158.6 
1749-12 85.2 
1750-01 73.3 
.... .... 
.... .... 

답변

0

수행하려는 작업에는 두 가지 문제가있는 것 같습니다. 첫 번째는 당신이 팬더의 데이터를 읽는 방법에 관한 것으로서,이 날짜와 dataframe 당신에게 인덱스를 수레의 열을 포기하지 않는

series = read_csv('book1.csv', header=0, parse_dates=[0], index_col=0, squeeze=True) 
print(series) 
>>>>Empty DataFrame 
Columns: [] 
Index: [1749-01 58, 1749-02 62.6, 1749-03 70, 1749-04 55.7, 1749-05 85, 1749-06 83.5, 1749-07 94.8, 1749-08 66.3, 1749-09 75.9, 1749-10 75.5, 1749-11 158.6, 1749-12 85.2, 1750-01 73.3] 

, 그것은 인덱스, 날짜와 값으로 각 행을두고있다 . 제대로 선을 분할 있도록 당신이 delimtier=' '를 추가 할 것을 생각 :

series =read_csv('book1.csv', header=0, parse_dates=[0], index_col=0, delimiter=' ', squeeze=True) 
>>>> Month 
1749-01-01  58.0 
1749-02-01  62.6 
1749-03-01  70.0 
1749-04-01  55.7 
1749-05-01  85.0 
1749-06-01  83.5 
1749-07-01  94.8 
1749-08-01  66.3 
1749-09-01  75.9 
1749-10-01  75.5 
1749-11-01 158.6 
1749-12-01  85.2 
1750-01-01  73.3 
Name: xxx, dtype: float64 

이 당신에게 열에서 'XXX'값을 인덱스로 날짜를 제공합니다.

둘째로 변형. 이 오류는이 경우 매우 설명적입니다. numpy.reshape을 사용하려면 원본 데이터와 다른 개수의 요소가있는 레이아웃으로 바꿀 수 없습니다. 예를 들면 :

import numpy as np 

a = np.array([1, 2, 3, 4, 5, 6]) # size 6 array 

a.reshape(2, 3) 
>>>> [[1, 2, 3], 
     [4, 5, 6]] 

배열의 길이가 6 밖으로 시작하고, 내가 2 x 3로 재편하고있어,하고 그러나 2 × 3 = 6

때문에 내가하려고하면이 괜찮 :

a.reshape(10, 10) 
>>>> ValueError: cannot reshape array of size 6 into shape (10,10) 
나는이 모양 변경을 수행하는 10 × 10 = 100 개 요소를 필요로하기 때문에

나는 오류를 얻을, 나는 단지 그것을 확실히 알고 불가능 전체 데이터 세트없이 6

을 가지고 있지만, 나는이 내가 생각 비록 당신이 전체 데이터 프레임을 numpy 배열로 변환하고 있긴하지만 같은 문제입니다.

관련 문제