【发布时间】:2013-06-26 17:47:46
【问题描述】:
我有一个 csv 文件,其中包含超过 200 000 行气象数据。当我想用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()
【问题讨论】:
-
数组元素是什么样的?这个答案:stackoverflow.com/questions/13652650/… 似乎认为没有明显的数组限制(如果是这样,至少有 1m+ 个元素)
-
@ydaetskcoR 这是一个例子 //headers X, Y, Latitude, Longitude, VOGRD_201304100000 //data 292, 1, 0.000000, -50.530000, 0 ...and 200 000 other lines like that
-
您能提供更多信息吗?您正在使用哪个
matplotlib电话等 -
@tiago 我导入了 numpy、pyplot、mlab 和 pyplat。我想绘制当前表面的数据,以便捕捉 x、y、纬度和经度,并使用 quiver 的函数对其进行操作。
-
请给我们看一些代码。我们不确定您在做什么会导致这种情况。
标签: python numpy matplotlib