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,float128 f2,f4,f8,f16
复数 complex64,complex128,complex256 c8,c16,c32
整数 int8,int16,int32,int64 i1,i2,i4,i8
布尔值 bool ?
字符串 string_ S
普通的Python对象 object O
固定长度的unicode unicode_ 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 方阵的逆
qr QR分解
svd 奇异值分解
solve 解线性方程
lstsq 最小二乘解

随机数生成函数

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

猜你喜欢

转载自blog.csdn.net/wxfghy/article/details/80817785