np.memmap读取大文件
Numpy中的ndarray
是一种新形式的Python内建类型。因此,它可以在需要时被继承。ndarray形成了许多有用类的基础。
np.memmap就是其中一种,它是内存映射文件。本质上就是使用C语言中的fseek随机访问文件的任何一个位置执行读写操作。当一个特别大的数组无法常驻内存时,np.memmap非常有用。
参数类型:
- filename:字符串、文件或者path
- dtype:默认为uint8,表示每个字节
- mode:支持r+,r,w+,c四种文件打开方式,r表示只读方式打开文件爱你,r+表示可读可写,w+表示先覆盖一个已存在的文件然后可读可写,c表示可以对文件进行修改但是不会保存到磁盘。默认为r+。
- offset:表示数组数据在文件中的偏移,此值应该是dtype类型的大小的整数倍。
- shape:可以指定数组的维度,默认是一维数组。
memmap默认的文件打开方式是r+。
import numpy as npa = np.random.randint(0, 10, (3, 4), dtype=np.int32)
print(a)
a.tofile("haha.bin")
b = np.memmap("haha.bin", dtype=np.int32, shape=(3, 4))
print(b)
b[0, 0] = 100
del b # 关闭文件,自动调用数组的finalize函数
b = np.memmap("haha.bin", dtype=np.int32, shape=(3, 4))
print(b)
输出为:
[[7 7 7 3][9 3 7 9][0 7 8 8]]
[[7 7 7 3][9 3 7 9][0 7 8 8]]
[[100 7 7 3][ 9 3 7 9][ 0 7 8 8]]
numpy数组和bytes互转
import numpy as npa = np.random.rand(3, 3).astype(np.float32)
print(a)
b = a.tobytes()
res = np.frombuffer(b, dtype=np.float32)
print(res)
参考资料
https://docs.scipy.org/doc/numpy/reference/arrays.classes.html
转载于:https://www.cnblogs.com/weiyinfu/p/10740529.html
np.memmap读取大文件相关推荐
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File; import java.io.RandomAccessFile; ...
- Windows/Linux上使用fopen相关函数读取大文件
在介绍读取大文件之前,先了解下<cstdint>文件,标准头文件,存放固定宽度整数类型,如int32_t, uint32_t,不管在32位上还是64位上,长度都为4个字节:int64_t, ...
- php读取大文件某行内容,php读取大文件最后几行数据的实现代码
/* * 读取大文件最后几行数据 * by www.jbxue.com */ $file = $handledir.'/venocap.1'; $fp = fopen($file, "r&q ...
- pandas读取大文件(chunksize)并通过sqlalchemy写入MySQL数据库
pandas读取大文件(chunksize)并通过sqlalchemy写入MySQL数据库 在pandas中读取表类文件的时候有一个参数chunksize,只要指定了这个参数的数值,那么得到的结果就不 ...
- php -- 读取大文件
在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file.file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能.但当所操作的文件是一个比较大的 ...
- java 按行读取大文件文件内容_Java实现按行读取大文件
Java实现按行读取大文件 String file = "F:" + File.separator + "a.txt"; FileInputStream fis ...
- php yield 导出文件,PHP yield 读取大文件
今天来优化下读取大文件,在 PHP 读取大文件的时候,经常会出现内存不足的情况,如果文件过大的话,没法一次读取完,今天采用 yield 来实现大文件的读取.yield生成器是php5.5之后出现的,y ...
- python读取大文件-Python如何读取、拆分大文件
简述 最近和第三方数据接触较多,数据量也开始陡增,从一开始的1KW行,最大到了1亿行,这让我这个常年处理"小数据'的人有点捉襟见肘.本来数据放在hive中也是可以操作的,但是有时候需求是做一 ...
- python读取大文件-python如何读取大文件以及分析时的性能优化小技巧
在二代.三代测序背景下,分析人员难免会遇到解析超过1G.或者10G以上的文件.这里将给大家简单介绍下如何用python读取大文件,并给大家提两个优化代码的小建议. 首先,python 读取GB级大文件 ...
最新文章
- 聚焦触宝反侵权事件:中国创业者用什么护航海外市场大门
- Push Notification (1)Google C2DM 服务
- 【ECCV 2018】Facebook开发姿态转换模型,只需一张照片就能让它跳舞(视频)
- commons.apache
- mysql 更改root密码及 主机_设置更改root密码(远程,本地)、连接mysql、mysql常用命令...
- 241.为运算表达式设计优先级
- OC 教程 极光推送
- Java拼接sql,并组装成建表语句
- Linux下wine最新版源码编译
- C语言获取股票数据,c/c++开发分享获取贵州茅台2010年1月1号至今的股票交易数据,计算该股票历史数据的5日均线和30日均线...
- .考试倒计时44天!来提分啦!
- UA OPTI570 量子力学23 角动量基础
- 最常去的IT网站(技术类,资讯类,个人博客)
- 模拟电子技术200问
- 功能点:3秒倒计时自动跳转指定页面
- 基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED
- 基于JSP同城校友网的设计与实现
- python金融分析小知识(38)——Jupyter Notebook更改文件路径
- 玩转华为ENSP模拟器系列 | 通过FTP访问其他设备文件配置举例
- Qt编写可视化大屏电子看板系统22-平滑曲线图