原因:Python 并没有提供数组功能,虽然列表 (list) 可以完成基本的数组功能,但它并不是真正的数组,而且在数据量较大时,使用列表的速度就会慢的让人难受。为此,Numpy 提供了真正的数组功能,以及对数据快速处理的函数。
用法:
示例:我们以数字示波器采集的实验产生的三角波 (triangular waveform) 为例,它是包含数据信息的表头,以 .txt 格式存储的文本文件
Type: raw Points: 16200 Count: 1 ... X Units: second Y Units: Volt XY Data: 2.4000000E-008, 1.4349E-002 2.4000123E-008, 1.6005E-002 2.4000247E-008, 1.5455E-002 2.4000370E-008, 1.5702E-002 2.4000494E-008, 1.5147E-002 ...
为了得到我们需要的有用数据,我们有两个硬的要求: (1) 跳过表头信息;(2) 区分横纵坐标。
import numpy as np data = np.genfromtxt('waveform.txt',delimiter=',',skip_header=18)
横纵坐标以 ',' 分割,因此给 delimiter 传入 ','。
有用数据是从19行开始的,因此给 skip_header 传入 18。
print data[0:3,0], data[0:3,1]
因为读入的是二维数据,因此利用 numpy 二维数据的切片方式 (Index slicing) 输出各自的前三个数据验证是否读取正确:
[ 2.40000000e-08 2.40001230e-08 2.40002470e-08] [ 0.014349 0.016005 0.015455]