2

200,000 行を超える気象データを含む csv ファイルがあります。でデータをモデル化したい場合matplotlib、次のエラーが表示されます。

Traceback (most recent call last):
  File "try4.py", line 19, in <module>
    X,Y = meshgrid( data_x,data_y )   
  File "C:\Python27\lib\site-packages\numpy\lib\function_base.py", line 3378, in  meshgrid
    mult_fact = np.ones(shape, dtype=int)   
  File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 148, in ones
    a = empty(shape, dtype, order) 
  ValueError: array is too big.

最大 5000 行のファイルを処理できることがわかりました。200000 行のすべてのファイルを処理するために、エラーを回避するにはどうすればよいですか? これが私のコードです:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from pylab import *


# read CSV as a numpy array
data = mlab.csv2rec('datasets/mix.csv')

# print CSV file headers
print data.dtype.names

# load columns as vectors
data_x = data['longitude']
data_y = data['latitude']
data_u = data['x']
data_v = data['y']

X,Y = meshgrid( data_x,data_y )
U = cos(data_u)
V = sin(data_v)


# plot raw data
Q = quiver( X, Y, U, V, units='width')
qk = quiverkey(Q, 0.5, 0.92, 2, '.', labelpos='W',
               fontproperties={'weight': 'bold'})
title('Current Surface')

plt.show()
4

1 に答える 1

2

なぜmeshgrid( doc )を使用しているのですか? uおよびデータの次元と一致しない 200k x 200k の配列を適切に生成しvます。私はあなたがこれをしたいと思います

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from pylab import *


# read CSV as a numpy array
data = mlab.csv2rec('datasets/mix.csv')

# print CSV file headers
print data.dtype.names

# load columns as vectors
data_x = data['longitude']
data_y = data['latitude']
data_u = data['x']
data_v = data['y']

U = cos(data_u)
V = sin(data_v)


# plot raw data
Q = quiver(data_x, data_y, U, V, units='width')
qk = quiverkey(Q, 0.5, 0.92, 2, '.', labelpos='W',
               fontproperties={'weight': 'bold'})
title('Current Surface')
于 2013-06-26T09:47:46.393 に答える