python中的向量化编程_Python中的向量化函数问题

我正在构建一个新函数来从文件导入数据。我正在构建我自己的,这样它就可以使用与loadtxt()相同的通用函数调用,并处理数据列的标题。问题出在数据文件的大小上,上一次我处理的是1.3Gig。为了尽量减少ram的使用,我计划将文件加载到一个变量中,将其分解成一个数组“f”,然后一次处理50000行。通过这种方式,我可以将这50000条处理过的行放入一个数组中,然后用原始文件从变量中删除它们。(一次处理一行然后删除一行太长,因此有了50000次的想法。)

对于我正在使用的处理:import numpy as np

def processing(arr, delimiter, dtype):

return map(dtype, arr.split(delimiter))

df = open(file, 'r')

f = df.readlines()

df.close()

fn = vectorize(processing, otypes=[float])

fn的工作条件是我不向它传递数组。考虑:

^{pr2}$

这个:fn(a, ',', int)

回报率"ValueError: setting an array element with a sequence."

我的其他功能正常。变量没有这个工作,但对大文件来说真的很慢。我有一个简短的一次性脚本,它在不到4分钟的时间内加载了文件,所以这就是目标(loadtxt()占用了~16Gig的ram并使我的机器崩溃)。我想尝试这种矢量化的想法,但如果有更好的方法来打破数据,同时尽量减少内存使用,我是开放的。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值