Python 科学计算之numpy知识点总结 新手入门
Python 科学计算之numpy
------------------------------------------Numpy库入门------------------------------------------
1.一维数据由对等关系的有序或无序数据构成,才用线性方式组织。对应列表、数组和集合等概念。列表集合
2.二维数据由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据,其中,表头是二维数据的一部分。列表
3.多维数据由一维数据或二维数据在新的维度上扩展形成。比如加上时间维度。 列表
4.高维数据仅利用最基本的二元关系展示数据之间的复杂结构。(键值对)字典或数据表示格式
5.Numpy使用:import numpy as np (引入模块的别名)
6.N维数组对象:ndarray:
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。
设置专门的数组对象,经过优化,可以提升这类应用的运算速度。
Ndarray是一个多维数组对象,由两部分构成:实际的数据,描述这些数据的元数据(数据维度、数据类型等)。
Ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。
Np.array() 生成一个数组,轴是保存数据的维度,秩是轴的数量
有符号的类型
无符号的类型
复数类型
对元素类型精细定义,有助于合理使用储存空间并优化性能。
7.数组创建的方法:
示例:
类似于range
注意全为1
注意 全为0 不指定为浮点数
类型为整数 int32
n*n的矩阵 对角线为1 其余为0
( ↑ ↑ ↑ 这三个函数在科学计算时很重要 ↑ ↑ ↑ )
1为起始位置 10为结束位置
endpoint为10是否为最后一个元素
concatenate连接两个数组
8.数组的维度变换:
注意 原数组不变
注意 原数组改变
两个维度进行调换(暂时不懂)
返回降维后的一维数组,原数组不变
9.ndarray数组的类型变换:
代码:a =np.ones((2,3))
a = np.ones((2,3),dtype = np.int)
Out[64]:
array([[1, 1, 1],
[1, 1, 1]])
b = a.astype(np.float)
Out[66]:
array([[1., 1., 1.],
[1., 1., 1.]])
注意:astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。
10.ndarray数组向列表的转换:
代码:
11.ndarray数组的索引和切片:
a[1 : 4 : 2分别为起始编号,终止编号和步长,但是注意终止编号是不包含的
↑ ↑ ↑注意:多维数组的索引很多层时,第一个索引是最外层的,以此类推
↑ ↑ ↑注意:·索引和切片的不同点在于是否有:
12.ndarray数组的运算:
注意:ceil是不超过元素的整数值,floor是小于这个元素的最大整数值
square等函数使用后并不直接刷新原数组的值
↑↑↑二元函数
13.数据的CSV文件存取:
CSV是一种常见的文件格式,用来存储批量数据
用法:
np.savetxt(“frame”, array , fmt=’%.18e’ , delimiter=None)
frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
array:存入文件的数组
fmt:写入文件格式,例如:%d %.2f %.18e
delimiter:分割字符串,默认是任何空格
np.loadtxt(“frame”, dtype=np.float , delimiter=None , unpack=False)
frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
dtype:数据类型,可选
delimiter:分割字符串,默认是任何空格
unpack:如果True,读入属性将分别写入不同变量
CSV文件的局限性:只能有效存储一维和二维数组:
14.多维数组的文件存取:
用法:
a.tofile(“frame” , sep=’’ , format=’%s’)
frame:文件、字符串
sep:数据分割字符串,如果是空串,写入文件为二进制
format:写入数据的格式
注意:当sep为逗号时,会成为一维数组,当不指定时为二进制文件,普通打开会乱码,但是二进制占用的空间更少,如果 用逗号,读入文件时要使用 .reshape来还原之前的维度
np.fromfile(“frame”, dtype=float , count =-1 , sep=’’)
frame:文件、字符串
dtype:读取的数据类型
count:读入元素的个数,默认为-1,-1表示读入整个文件
sep:数据分割字符串,如果是空串,写入文件为二进制
15.numpy的便捷文件存取(系统自定义格式):
np.save(fname, array)或 np.savez(fname, array)
np.load(fname)
注意:如果要使文件和其他程序的对接,就最好使用前两种方法
16.numpy的随机数库函数:
使用方法:
注意:是每列的数据改变
17.numpy统计函数:
argmin 与 unravel_index二者经常结合使用
Dr_JaiWang
2018.5.16