详情请点阅读全文
创建ndarray数组:
1 | import numpy as np |
常用属性
- T 数组的转置(对高维数组而言)
- dtype 数组元素的数据类型
- size 数组元素的个数
- ndim 数组的维数
- shape 数组的维度大小(以元组形式)
数据类型dtype:
bool_ , int(8, 16,32,64), uint(8, 16,32,64), float(16,32,64)
类型转换: astype()
创建ndarray:
- array() 将列表转换为数组,可选择显式指定dtype
- arange() range的numpy版,支持浮点数
- linspace() 类似arange(),第三个参数为数组长度
- beros() 根据指定形状和dtype创建全0数组
- ones() 根据指定形状和dtype创建全1数组
- empty() 根据指定形状和dtype创建空数组(随机值)
- eye() 根据指定边长和dtype创建单位矩阵
numpy索引和切片
数组和标量之间的运算
1 | a+1 a*3 1//a a ** 0.5 |
2.同样大小数组之间的运算
1 | a+b a/b a**b |
数组的索引
1 | a[5] a2[2][3] a2[2,3] |
数组的切片
1 | a[5:8] a[:3] = 1 a2[1:2, :4] a2[:,:1] a2[:,1] |
与列表不同,数组切片时并不会自动复制,在切片数组上的修改 会影响原数组。
[解决方法: copy()]
1 | 原:b=a[:4] 解决:b= a[:4].copy() |
numpy布尔型索引
问题1: 给一个数组,选出数组中所有大于5的数。
答案: a[a>5]
原理:
- a> 5会对a中的每一一个元素进行判断,返回一个布尔数组
- 布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组
问题2: 给一个数组,选出数组中所有大于5的偶数。
问题3: 给一个数组,选出数组中所有大于5的数和偶数。
答案:
1 | a[(a>5) & (a%2==0)] |
numpy花式索引*
问题1: 对于-一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。
答案: a[[1,3,4,6,7]]
问题2: 对一个二维数组,选出其第一列和第三列,组成新的二维数组。
答案: a[:,[1,3]]
numpy通用函数
【定义】通用函数:能同时对数组中所有元素进行运算的函数
常见通用函数:
一元函数(传1个数组): abs, sqrt, exp, log, ceil(向上取整), floor(向下取整), rint/round(四舍五入), trunc(向零取整),modf, isnan, isinf, cos, sin, tan
二元函数(传2个数组): add(加), substract(减), multiply(乘), divide(除), power(乘方), mod(取余),maximum, mininum,
1 | #一元:向上取整ceil,向下取整floor |
numpy通用函数数组的用法
1 | import numpy as np |
numpy常用函数
一、numpy数学和统计学方法:
- sum:求和
- cumsum:求累计和
- mean:求平均数
- std:求标准差
- var:求方差
- min:求最小值
- max:求最大值
- argmin:求最小值索引
- argmax :求最大值索引
二、随机数生成
- rand:给定形状产生随机数组(0到1之间的数)
- randint:给定形状产生随机整数
- choice:给定形状产生随机选择
- shuffle:与random. shuffle相同 (打乱列表原有顺序)
- uniform:给定形状产生随机数组
随机数示例:
1 | #==========python内置random========== |