代码:
import scipy as sp
import matplotlib.pyplot as plt
data=sp.genfromtxt("data/train.tsv", delimiter ="\t", dtype="string", comments=None, skip_header=1)
x = data[:,0]
y = data[:,1]
x = x[~sp.isnan(y)]
y = x[~sp.isnan(y)]
DataOfInterest=x["avglinksize"]
EphemeralOrEvergreen=x["label"]
plt.scatter(DataOfInterest,EphemeralOrEvergreen)
plt.title("Training data")
plt.xlabel("Single feature from training set")
plt.ylabel("Ephemeral or Evergreen")
plt.grid()
plt.show()
输出:
PythonGenGraphs.py在
^{pr2}$我正在尝试将tsv文件中的一列与另一列相对。在
我在这里误解了什么?我还能怎么做?在
您可以使用
np.memmap
加载它,这将需要大约70MB:使用
del m
删除m
或关闭Python控制台时,将保存该文件。在创建文件之后,可能需要将模式更改为r+
。在您可以像使用普通数组一样使用memmap数组,这将只允许您获取感兴趣的部分。在
Python内存不足,因为您要创建的对象太大了。原因是您的数据包含一些非常大的字符串(请注意,在您之前的问题中)。在
您创建的数组
data
只有一个dtype
。此数据类型的大小被选择为足以容纳数据中最长的字符串。但不管其他内容如何,对于数据中的每个字段,分配的内存量是相同的!因此,数组内存中的大小可能会比数据文件的大小大得多!在作为一种解决方案,您可以为每个列指定数据类型,但更简单的方法是只加载实际需要的数据:
相关问题 更多 >
编程相关推荐