Numpy基本用法

《利用Python进行数据分析》笔记

1. 创建数组ndarray

  1. ndarray是N维数组对象, 快速而灵活的大数据集容器
  2. 其中所有元素的数据类型必须是相同的
  3. ndarray包括shape属性(各维度大小的元组)和dtype属性(数组数据类型)
ndarray创建函数特点
array支持列表,元组,数组或其他序列类型,可推断也可指定dtype
arange相当于range,返回ndarray而非列表
zeros,zeros_like指定shape和dtype创建数组,以0填充;like表示以另一数组做参数创建
ones,ones_like同上,以1填充
empty,empty_like同上,无填充
eye,identity功能相同参数不同,创建N阶单位矩阵(仅对角线为1,其余为0)
import numpy as np
# 创建基本数组
data1 = [6, 7.5, 8, 0, 1]
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr1 = np.array(data2)
arrShape = arr1.shape  # 数组大小(行,列)
arrDtype = arr1.dtype  # 数组数据类型
print(f"数组:{arr1}\n数字大小:{arrShape}\n数组数据类型:{arrDtype}\n")
# 创造随机数的数组
from numpy.matlib import randn
arr=randn(3,2)#三行二列的正态分布随机数数组,平均值0,标准差1
# 创建特殊数组
arr2=np.zeros((2,3))#创建一个以0填充的2行3列数组
print(arr2)

2. ndarray常用数组数据类型

数据类型形式简写的类型代码
浮点数float16,float32,float64,float128f2,f4,f8,f16
复数complex64,complex128,complex256c8,c16,c32
整数int8,int16,int32,int64i1,i2,i4,i8
布尔值bool?
字符串string_S
普通的Python对象objectO
固定长度的unicodeunicode_U
#查看数据类型dtype
arr=np.array([1,2,3,4,5])
print(arr.dtype)
#数据类型转换方式astype
arr2=arr.astype(np.float32)

3. ndarray索引和切片

  1. 支持类似List的索引和切片
  2. 与List区别在于,ndarray的修改会改变源数组
#索引矩阵按行列索引,[0][0]表示第一行第一列的数据
arr[0][0]
#:表示选取整个横轴,纵轴,数字表示该轴上的切片起始位置
arr[:,:1]
#支持布尔值,判断是否与字符串相等会对每个元素生成True或False
arr == 'hello'
#花式索引,选取第1,3,5行生成新数组,从0开始,支持-1
arr[[1,3,5]]

4. 转置

#T表示转置数组的视图,不会修改
arr.T
#transpose支持高维数组的转置
#swapaxes表示转置条件为几行几列
arr.swapaxes(1,2)

5. 常用函数

一元函数(参数为一个数组)

函数功能
abs,sqrt,square,exp计算每个元素的绝对值,平方根,平方,e指数
log,log10,log2底e,10,2的对数
ceil,floor天花板,地板
sign计算元素符号,1为正,-1为负
rint四舍五入
modf整数和小数分两部分返回
isnan判断是NaN则返回True
isfinite,isinf有穷,无穷
sin,cos,tan,arcsin,arccos,arctan三角函数

二元函数(参数为两个数组)

函数功能
add两个数组对应元素相加
subtract相减
multiply相乘
divide,floor_divide相除,舍弃余数的相除
power第一个参数为底,第二个参数为幂
maximum,fmax比较后返回最大值,fmax忽略NaN
minimum,fmin最小值
mod第一个数组对第二个数组取模
copysign复制第二个数组的符号给第一个数组
greater,greater_equal,less,less_equal,equal,not_equal比较,返回布尔
logical_and,logical_or,logical_xor逻辑,与或非

聚合函数

函数功能
sum全部元素或某个轴元素求和
mean算术平均数
std,var,max,min标准差,方差,最大值,最小值
argmax,argmin最大最小值的索引
cumsum,cumprod所有元素累积和和累积积

集合函数

函数功能
sort,sorted排序,可对某列操作
unique计算唯一元素,返回有序结果
interset1d交集
union1d并集
in1d返回布尔数组,判断两个数组元素是否包含关系
setdiff1d差集

矩阵函数

函数功能
diag将矩阵对角线元素以一位数组形式返回
dot矩阵相乘
trace对角线的和
det行列式
eig方阵的本征值和本征向量
inv方阵的逆
qrQR分解
svd奇异值分解
solve解线性方程
lstsq最小二乘解

随机数生成函数

函数功能
seed种子
shuffle对序列进行随机排列
rand均匀分布
randint给定上下限的随机数
randn正态分布,平均值为0,标准差为1
binomial二项分布
normal正态分布
betaBeta分布
chisquare卡方分布
gammaGamma分布
uniform在0,1之间的均匀分布
点赞