3

2 つの個別のリスト間の相関関係を示そうとしています。Numpy をインストールする前に、GDP 値とインターネット ユーザー数について世界銀行のデータを解析し、それらを 2 つの別々のリストに保存しました。これがコードのスニペットです。これはgdp07専用です。実際には、より多くのリストと失業率などの他のデータがあります。

import numpy as np

file = open('final_gdpnum.txt', 'r')
gdp07 = []
for line in file:
    fields = line.strip().split()
    gdp07.append(fields [0])    

file2 = open('internetnum.txt', 'r')
netnum07 = []
for line in file2:
    fields2 = line.strip().split()
    nnetnum07.append(fields2 [0])

print np.correlate(gdp07,netnum07,"full")

私が得るエラーはこれです:

Traceback (most recent call last):
  File "Project3,py", line 83, in ,module.
    print np.correlate(gdp07, netnum07, "full")
  File "/usr/lib/python2.6/site-packages/numpy/core/numeric.py", line 645, in correlate
    return multiarray.correlate2(a,v,mode))
ValueError: data type must provide an itemsize

記録のために、私は Windows コンピューターで Python 2.6 で Cygwin を使用しています。私は Numpy とその依存関係およびビルドの他の部分 (gcc コンパイラ) のみを使用しています。どんな助けでも素晴らしいでしょう。どうも

4

2 に答える 2

3

python docs strip() によると文字列を返すため、データを文字列として入力しようとすると、おそらくそれがエラーになります。

http://docs.python.org/library/stdtypes.html

必要なタイプにデータを解析してみてください

ここでわかるように

In [14]:np.correlate(["3", "2","1"], [0, 1, 0.5])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/dog/<ipython-input-14-a0b588b9af44> in <module>()
----> 1 np.correlate(["3", "2","1"], [0, 1, 0.5])

/usr/lib64/python2.7/site-packages/numpy/core/numeric.pyc in correlate(a, v, mode, old_behavior)
    643         return multiarray.correlate(a,v,mode)
    644     else:
--> 645         return multiarray.correlate2(a,v,mode)
    646 
    647 def convolve(a,v,mode='full'):

ValueError: data type must provide an itemsize

値を解析してみてください

In [15]: np.correlate([int("3"), int("2"),int("1")], [0, 1, 0.5])
Out[15]: array([ 2.5])



import numpy as np

file = open('final_gdpnum.txt', 'r')
gdp07 = []
for line in file:
    fields = line.strip().split()
    gdp07.append(int(fields [0]))    

file2 = open('internetnum.txt', 'r')
netnum07 = []
for line in file2:
    fields2 = line.strip().split()
    nnetnum07.append(int(fields2 [0]))

print np.correlate(gdp07,netnum07,"full")

あなたの他のエラーは文字の終わりの問題です。デフォルトでutf-8をサポートするLinuxボックスを持っているため、再現できないと思うので、これがうまくいくことを願っています。私はipythonのヘルプ(コーデック)のドキュメント http://code.google.com/edu/languages/google-python-class/dict-files.htmlに行きました

import codecs

f =  codecs.open(file, "r", codecs.BOM_UTF8)
for line in f:
    fields = line.strip().split()
    gdp07.append(int(fields [0]))
于 2012-06-26T00:02:00.367 に答える