一、数组的创建与计算
导入模块
import random
import numpy as np
1.生成数组ndarray
arange(start,stop,step)
a1=np.arange(1,9,2)
print(a1)
a2=np.array([1,2,3,4],dtype=float)
print(a2)
2.调整数据类型astype
a1=a1.astype("float")
print(a1)
print(a1.dtype)
3.生成随机数组
#1.随机生成0-1之间的小数
a3=np.array([random.random() for i in range(10)])
print(a3)
#2.随机生成1-10之间的小数
a4=np.array([random.uniform(1,10) for i in range(10)])
print(a4)
#3.随机生成1-10之间的整数
a5=np.array([random.randint(1,10) for i in range(10)])
print(a5)
#4.随机生成1-10之间以2递增的整数
a5=np.array([random.randrange(1,10,3) for i in range(10)])
print(a5)
保留小数点后几位
a3=np.round(a3,3)
print(a3)
4.数组的形状
b1=np.array([[2,3,4,5,6,7],[8,9,0,1,2,3]])
print(b1.shape)
修改数组形状
b1=b1.reshape(3,4)
print(b1)
b2=np.arange(24).reshape(3,8)
print(b2)
flatten展开成一维数组
b2=b2.flatten()
print(b2)
5.数组的加减整除操作
c1=np.arange(12).reshape(3,4)
print(c1+2)
print(c1*2)
print(c1/2)
c2=np.arange(13,25).reshape(3,4)
print(c2)
print(c1)
print(c1+c2)
#广播原则
c3=np.arange(3).reshape(3,1)
print(c3)
print(c1+c3)
c4=np.arange(4).reshape(1,4)
print(c4)
print(c1+c4)
二、读取本地数据
1.numpy读取数据
np.loadtxt
参数 | 功能 |
---|---|
dtype | 数据类型 |
delimiter | 分隔字符,默认是空格,应当改为逗号 |
skipows | 跳过前x行 |
usecols | 读取指定的列 |
unpack | 转置 |
data1=np.loadtxt(r"C:\Users\27569\Desktop\iris.csv",delimiter=',',dtype=float,skiprows=2)
print(data1)
data2=np.loadtxt(r"C:\Users\27569\Desktop\iris.csv",delimiter=',',dtype=float,skiprows=2,unpack=True)
print(data2)
2.矩阵转置函数T
data2=data2.T;
print(data2)
三、索引与切片
0.numpy读取数据
data1=np.loadtxt(r"C:\Users\27569\Desktop\iris.csv",delimiter=',',dtype=float,skiprows=2)
1.取行
print(data1[2])
#取2以后的所有行
print(data1[2:])
#取不连续多行2,4,6
print(data1[[2,4,6]])
2.取行、去列通用操作
逗号之前是行,逗号之后是列
取行
print(data1[2,:])
#取2以后的所有行
print(data1[2:,:])
#取不连续多行2,4,6
print(data1[[2,4,6],:])
取列
#取第一列
print(data1[:,0])
#取连续多列
print(data1[:,2:])
#取不连续多列
print(data1[:,[2,3]])
取第三行到第五行,第二列到第四列的数据:即取行与列交叉点的位置
data2=data1[2:4,1:3]
print(data2)
四、数据的拼接
0.numpy读取数据
import numpy as np
data1=np.loadtxt(r"C:\Users\27569\Desktop\iris.csv",delimiter=',',dtype=float,skiprows=2)
data2=data1[0:4,0:3]
data3=data1[5:9,0:3]
1.竖直拼接np.vstack
data4=np.vstack((data2,data3))
print(data4
2.水平拼接np.hstack
data4=np.hstack((data2,data3))
print(data4)
五、数组的行交换和列交换
1.行交换
data4[[1,2],:]=data4[[2,1],:]
print(data4)
2.列交换
data4[:,[0,1]]=data4[:,[1,0]]
print(data4)
六、常用的统计函数
data2=np.arange(12).reshape(3,4)
print(data2)
1.sum求和
#计算总和
print(np.sum(data2))
#计算行和
print(np.sum(data2,axis=1))
#计算列和
print(np.sum(data2,axis=0))
print(data2.sum(axis=0))
2.mean计算均值
print(data2.mean())
print(data2.mean(axis=0))
print(data2.mean(axis=1))
3.median计算中间值
print(np.median(data2))
print(np.median(data2,axis=0))
print(np.median(data2,axis=1))
4.max,min计算最大值最小值
print(data2.max())
print(data2.max(axis=0))
print(data2.max(axis=1))
5.ptp计算极值
print(np.ptp(data2))
print(np.ptp(data2,axis=0))
print(np.ptp(data2,axis=1))
6.std计算标准差
print(data2.std())
print(data2.std(axis=0))
print(data2.std(axis=1))