《利用Python进行数据分析》笔记
1. 创建数组ndarray
- ndarray是N维数组对象, 快速而灵活的大数据集容器
- 其中所有元素的数据类型必须是相同的
- 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)
arr2=np.zeros((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索引和切片
- 支持类似List的索引和切片
- 与List区别在于,ndarray的修改会改变源数组
arr[0][0]
arr[:,:1]
arr == 'hello'
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之间的均匀分布 |