python数据分析必备工具(1) numpy基本操作

mac2026-05-05  8

注意:符号可能为中文下输入!!!

numpy数组是一个多维数组对象 导入: import numpy as np

数组属性:

建立一个一维数组 ar=np.array([1,2,3,4,5,6]) ### 数组没有“,”分隔[1 2 3 4 5 6] ar.adim ###数组的秩(数组维度的个数) ar.shape ###数组的维度 对于n行m列的数组,shape(n, m) ar.size ####数组元素的总数 对于n行m列的数组,size=n*m ar.dtype ###数组中元素的类型 ar.itemsize ###数组中每个元素的字节大小 int32为4个字节, float64为8个字节

创建数组

array()函数 括号内可以是列表、元组、生成器 1.通过range ar1=np.arange(10) ar2=np.array([range(10)]) 注意: ar3=np.array([[1,2,3,4,5,6],['a','b','c','d','e','f']]) 此时ar3.dtype 为str ar4=np.array([[1,2,3,4,5,6,7],['a','b','c','d','e','f']]) 当列表长度不相等时,数组转化为一维数组 2. linspace(开始,停止,num=,endpoint=True) 返回在[开 始,停止]上计算的num个均匀间隔的样本 ar5=np.linspace(10,20,num=20) endpoint=True 即包含20,False则不包含20 retstep =True 返回类型为元组,返回原数组以及step 即:ar5[0]为原数组;ar5[1]为step 3.zeros()/zeros_like(),ones(),ones_like() ar6=np.zeros((2,5),dtype=) 创建一个2行5列数值均为0的二维数组 ar=np.array([1,2,3,4,5]) ar7=np.zeros_like(ar) 生成一个和ar同样大小但是数据均为0的数组 ones与ones_like()与zeros()和zeros_like()类似,ones填充1 4.eye() np.eye(5) ###创建一个正方的单位矩阵,对角线值为1, 其余为0

numpy通用函数:

1.数组形状(生成新的数组,并不更改原数组): ar1=np.array([[1,2,3,4,5,6],[7,8,9,10,11,12]]) ar1.T ###数组的转置 ar1.reshape(6,2) ###更改行数与列数 **注意**:size必须相同 np.reshape(ar1,(6,2)) np.resize(ar1,(5,6)) #### 5*6>12 但是将ar1中数据排序,填充;;; np.resize(ar1,(2,4)) ####2*4<12 取ar1中前8个进行填充 ar.resize(2,8) ###更改原数组 np.resize(ar,(2,8)) ###生成新数组 2.数组的复制(深拷贝与浅拷贝): ar2=ar1 ar2,ar1 指向同一个对象 ar2=ar1.copy() 新建一个对象,用ar2指向 3.数据类型的转换 ar1=ar.astype(“数值类型”) 4.数组堆叠: a=np.arange(5) b=np.arange(5,10) np.hstack((a,b)) ####数组的横向连接 np.vstack((a,b)) ###数组的竖向连接 **注意**:a,b列数相同,否则报错 np.stack((a,b),axis=1) 5. 数组拆分: np.hsplit(ar,2) ###横向拆分 np.vsplit(ar,2) ####纵向拆分 6. 数据简单运算: + - * / ** ar.mean() ###求平均值 ar.max() ###求最大值 ar.min() ###求最小值 ar.std() ###求标准差 ar.var() ###求方差 ar.sum() ###求和 axis=0 按列求和 axis=1按行求和 ar.sort() ###默认升序,修改原数组

索引及切片:

一维数组类似list ar=np.arange(10) ar[4] ar[:3] ar[::2] 二维数组: ar=np.arange(16).reshape(4,4) ar[2] ##第三行 ar[2][2] ##第三行第三个值 ar[1:3] ## 第二行和第三行 ar[2,2] ## 第三行第三列所对应的数值 ar[行,列] 布尔值索引及切片: ar=np.arange(12).reshape(3,4) 保留为True的值 ar[ar>5] 数组索引及切片的值更改、复制: ar[5]=100 ###将第6行设置成100 ar[:,5]=100 ### 将第6列设置成100 b=ar.copy() 深拷贝 和python内存管理有关系

numpy随机数

np.random.normal(size=(4,4,)) ###生成标准正态分布的4*4二维数组 np.random.rand(d0,d1.......) ###生成一个[0,1)之间的随机浮点数N维浮点数组 ----均匀分布 np.random.rand(2,4) ###生成2行4列的浮点数数组 np.random.randint(low,high=None,size=None) ###生成一个整数或N维整数数组 若high不是None时取[low,high)的随机整数,否则取[0,low)之间的随机整数
最新回复(0)