ndarray
1.简介
Numpy是高性能科学计算和数据分析的基础包,也是pandas等其他数据分析的工具的基础。
NumPy为Python带来了多维数组功能,并且提供了丰富的函数库处理这些数组,且支持向量化运算,使得这些数学函数能够直接对数组进行操作。将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。
安装方法:pip install numpy
2、ndarray -多维数组对象
Numpy的核心特征就是N-维数组对 -ndarray。先通过具体的实例来展示一下ndarray的优势。
多维数组列表
3.常用属性
属性 | 描述 |
T | 数组的转置(对高维数组而言) |
dtype | 数组元素的数据类型 |
size | 数组元素的个数 |
ndim | 数组的维数 |
shape | 数组的维度大小(以元组形式) |
4.数据类型
类型 | 描述 |
布尔值 | bool_ |
整型 | int_ int8 int16 int32 int 64 |
无符号整型 | uint8 uint16 uint32 uint64 |
浮点型 | float_ float16 float32 float64 |
复数型 | complex_ complex64 complex128 |
注意:1)无符号整型只能用来存正数,不能用来存负数。
2)bool_,int_,float_之所以加下划线,是为了和python原生数据类型做区别。
3) astype()方法可以修改数组的数据类型。
5.ndarray-创建
方法 |
描述 |
array() |
将列表转换为数组,可选择显式指定dtype |
arange() |
range的numpy版,支持浮点数 |
linspace() |
类似arange(),第三个参数为数组长度 |
zeros() |
根据指定形状和dtype创建全0数组 |
ones() |
根据指定形状和dtype创建全1数组 |
empty() |
根据指定形状和dtype创建空数组(随机值) |
eye() |
根据指定边长和dtype创建单位矩阵 |
6.索引和切片
# 索引 >>>np.array([0,1,2,3,4,5]) array([0,1, 2, 3, 4, 5]) ---------------------------------------------- >>>li.reshape(6) array([0, 1, 2, 3, 4, 5]) ---------------------------------------------- >>>li = np.arange(6).reshape(2,3) # 把一维变成二维 >>>li array([[0, 1, 2], [3, 4, 5]]) # 现在有这样一组数据,需求:找到4 列表写法:arr[1][1] 数组写法:arr[1,1] # 中间通过逗号隔开就可以了
# 布尔型索引 # 给一个数组,选出数组种所有大于5的数。 li = [random.randint(1,10) for _ in range(30)] a = np.array(li) a[a>5] 执行结果: array([10, 7, 7, 9, 7, 9, 10, 9, 6, 8, 7, 6]) ---------------------------------------------- 原理: a>5会对a中的每一个元素进行判断,返回一个布尔数组 a > 5的运行结果: array([False, True, False, True, True, False, True, False, False, False, False, False, False, False, False, True, False, True, False, False, True, True, True, True, True, False, False, False, False, True]) ---------------------------------------------- 布尔型索引:将同样大小的布尔数组传进索引,会返回一个有True对应位置的元素的数组
通用函数
能对数组中所有元素同时进行运算的函数就是通用函数。
常见通用函数:能够接受一个数组的叫做一元函数,接受两个数组的叫二元函数,结果返回的也是一个数组.
1.一元函数
函数 |
功能 |
abs、fabs |
分别是计算整数和浮点数的绝对值 |
sqrt |
计算各元素的平方根 |
square |
计算各元素的平方 |
exp |
计算各元素的指数e**x |
log |
计算自然对数 |
sign |
计算各元素的正负号 |
ceil |
计算各元素的ceiling值 |
floor |
计算各元素floor值,即小于等于该值的最大整数 |
rint |
计算各元素的值四舍五入到最接近的整数,保留dtype |
modf |
将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似 |
isnan |
计算各元素的正负号 |
isinf |
表示那些元素是无穷的布尔型数组 |
cos,sin,tan |
普通型和双曲型三角函数 |
2.二元函数
函数 |
功能 |
add |
将数组中对应的元素相加 |
subtract |
从第一个数组中减去第二个数组中的元素 |
multiply |
数组元素相乘 |
divide、floor_divide |
除法或向下圆整除法(舍弃余数) |
power |
对第一个数组中的元素A,根据第二个数组中的相应元素B计算A**B |
maximum,fmax |
计算最大值,fmax忽略NAN |
miximum,fmix |
计算最小值,fmin忽略NAN |
mod |
元素的求模计算(除法的余数) |
3.数学统计方法
函数 | 功能 |
sum | 求和 |
cumsum | 求前缀和 |
mean | 求平均数 |
std | 求标准差 |
var | 求方差 |
min | 求最小值 |
max | 求最大值 |
argmin | 求最小值索引 |
argmax | 求最大值索引 |
4.随机数
随机数生成函数在np.random的子包当中
函数 | 功能 |
rand | 给定形状产生随机数组(0到1之间的数) |
randint | 给定形状产生随机整数 |
choice | 给定形状产生随机选择 |
shuffle | 与random.shuffle相同 |
uniform | 给定形状产生随机数组 |