Python科学计算——Numpy知识点

来源:互联网 发布:鼠标对码软件 编辑:程序博客网 时间:2024/06/03 19:55
1 Python自带的list,存储的是对象指针,在进行数值运算时,比较浪费内存和CPU计算时间;

2 Python的array,不支持多维数组;

3 NumPy提供了两个基本的对象:ndarray,ufunc;

4 help(np.array) 或者 np.array? 查看帮助;

5 shape可以查看/修改数组的维度;reshape,创建新维度的数组,存储结构不会发生变化!

6 dtype,元素类型;

7 arange,linespace,logspace 根据简单规则来创建数组;

8 zeros(), ones(), empty() 可以创建指定形状和类型的数组;

9 frombuffer(), fromstring(), fromfile() 可以从字节序列或文件创建数组;

10 fromfunction(),可以自定义一个从下标计算数值的函数,然后通过fromfunction来创建数组;

11 数组元素存取语法: arr[b:e:s]
b(begin),起始下标,可以省略,表示从0开始;
e(end),结束下标,可以为负数,-n表示从最后一个元素往前数n个;
s(step),步长,有多种巧妙用法,[::-1]表示数组倒叙;

12 通过切片获取的新数组是原始数组的一个视图,数据存储空间不变;

13 高级下标存取方法:整数列表、整数数组、布尔数组;数据存储空间独立,不共享!

14 布尔数组一般不是手工产生,而是使用布尔运算的ufunc函数产生;

-------------------------- 结构数组

1 结构数组类似于c语言的struct,结构中的字段占据连续的内存空间;


--------------------------- ufunc 运算

1 ufunc,能对数组中的每个元素进行操作的函数;

2 numpy中的ufunc函数 np.sin,比python库中的 math.sin 快了10倍多,得益于np.sin在c语言级别的循环计算;

3 python 的列表推导运算: x = [math.sin(t) for t in x]; 

4 numpy item()方法,能返回标准的Python数值类型;

5 运算符 ufunc: 以数组为单位进行运算,+-*/%等;

6 布尔运算:返回一个布尔数组;

7 np.frompyfunc(func, args_num, ret_num) 可以将函数转化为 ufunc,用于数组计算;

8 arr.astype(np.float),可以将ufunc返回的object对象数组,转化为真实的 float 类型;

9 vectorize();

10 广播规则: 当ufunc函数对两个数组进行计算,数组shape属性不同时的处理规则;

11 arr.repeat(), np.ogrid(), np.mgrid()

12 help(np.add): 查看 reduce(), accumulate(), outer()等函数的详细用法;
0 0
原创粉丝点击