小编Stu*_*Stu的帖子

从二进制文件创建Numpy数组的有效方法

我有非常大的数据集存储在硬盘上的二进制文件中.以下是文件结构的示例:

文件头

149 Byte ASCII Header
Run Code Online (Sandbox Code Playgroud)

记录开始

4 Byte Int - Record Timestamp
Run Code Online (Sandbox Code Playgroud)

样品开始

2 Byte Int - Data Stream 1 Sample
2 Byte Int - Data Stream 2 Sample
2 Byte Int - Data Stream 3 Sample
2 Byte Int - Data Stream 4 Sample
Run Code Online (Sandbox Code Playgroud)

样品结束

每条记录有122,880个样本,每个文件有713个记录.这样产生的总大小为700,910,521字节.采样率和记录数有时会有所不同,因此我必须编码以检测每个文件的数量.

目前我用来将这些数据导入数组的代码如下:

from time import clock
from numpy import zeros , int16 , int32 , hstack , array , savez
from struct import unpack
from os.path import getsize

start_time = clock()
file_size = …
Run Code Online (Sandbox Code Playgroud)

python numpy

14
推荐指数
1
解决办法
1万
查看次数

如何创建包含24位整数的Numpy dtype?

我有一个二进制文件,其记录结构为400 24位有符号大端整数,后跟16位大端符号短路.我想要做的是:

from numpy import dtype , fromfile
record_dtype = dtype([('samples','>i3',(400,)),('marker','>i2')])
data = fromfile('binary_file.dat',dtype=record_dtype)
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到的是:

TypeError: data type not understood
Run Code Online (Sandbox Code Playgroud)

回应'> i3'.如何定义dtype以24位二进制数读取?

python numpy

5
推荐指数
1
解决办法
3862
查看次数

如何从2d FFT计算波数域坐标

我有一个二维数组的复数,表示沿真实空间中的平面测量的潜在场.假设该阵列是128个单元乘128个单元,并且该平面的总面积是500m×500m.该数组中的每个单元代表空间域中的一个点,坐标以x和y给出.

当我在这个2d阵列上使用scipy.fftpack的2d FFT时,我得到了波域中表示的相同信息.如何为输出数组的点计算波域坐标kx和ky?

python fft scipy

3
推荐指数
1
解决办法
6097
查看次数

标签 统计

python ×3

numpy ×2

fft ×1

scipy ×1