数组
numpy创建数组的方法
可以用np.array()将一个列表作为参数
import numpy as np
d1 = np.array(range(1,7))
print(d1) # 输出数据
print(d1.size) # 输出元素个数
print(d1.ndim) # 输出数组维度
print(d1.shape) # 输出数组形状(长宽高)
可以用zeros,ones方法创建全0全1数组
# 创建10个元素的数组,默认填充0。
z = np.zeros(10) # 一维数组
z = np.zeros((2,5)) # 只有一个参数,请用元组包裹参数以创建二维数组。
z = np.zeros((2,5)) # 三维数组
z = np.ones((2,5)) # 全1
z = np.empty((1,2,3)) # 全空
print(z)
数组转换维度
原数组.reshape(行数,列数)
注意原数组长度必须正好被新数组接收
# 五行三列数组
data1 = np.arange(15).reshape(5,3)
print(data1)
数组数据类型
使用dtype属性获取数组的数据类型
data = np.array(range(1,7),dtype=np.float64)
data.dtype
astype()方法可以修改数据类型
# 转换为int32
data = data.astype(np.int32)
data.dtype
数据类型有int32,int64,float32,float64
数组切片
numpy的切片和原版相似,同时也对原版进行了些许语法优化
现在访问二维数组的元素可以不用写两个方括号了
data = np.arange(14).reshape(2,7)
print(data)
print(data[0,4])
print(data[-1,-1])
print(data[-1])
逗号用来区分对哪个维度操作,冒号用法和原版一样,但是写的位置有一些变化
data = np.arange(14).reshape(2,7)
print(data)
print(data[1:,:3])
print(data[:,3:4])
数组运算
算术运算
numpy中运算符的作用和原版不同,加减乘除运算符是对数组中每一个数据进行操作,如下:
import numpy as np
a = b = np.random.random(10000)*10
print(a)
print(b)
print(a+b)
print(np.add(a,b))
函数运算
还能进行很多的函数运算,如sin等
ang = np.array(range(0,181,15))
rad = np.sin(ang * np.pi / 180) #求弧度
rad
统计运算
data = np.array(range(1,7))
print(data.mean()) # 均值
print(np.average(data)) # 均值
print(np.average(data,weights=np.array([2,2,1,1,1,9]))) # 均值加权
print(np.median(data)) # 中位数
print(np.var(data)) # 方差
print(np.std(data)) # 标准差(方差开根号)
聚合运算
print(np.sum(data)) #累加
print(np.prod(data)) #累乘
print(np.max(data)) #最大值
print(np.min(data)) #最小值
筛选排序
print(np.where(data > 3)) # 选出data中大于3的数字的下标值
print(np.where(data < 3)) # 选出data中小于3的数字的下标值
# 排序
print(np.sort([2,4,6,78,4,3,56,78,7,4,3,5,87,5,33,0]))
print(np.sort([2,4,6,78,4,3,56,78,7,4,3,5,87,5,33,0])[::-1]) # 逆序
矩阵
numpy是一个科学运算库,为高效处理大型多维数组和矩阵而设计。矩阵的运算规则如下:
矩阵相加时两个矩阵的长宽必须相同,形状必须一致才能执行加运算。
矩阵和一个数字相乘的时候要对矩阵中每个元素都乘这个数字。
矩阵相乘的时候必须一横一竖才能进行运算,行元素数量必须等于列元素数量。
numpy的二维数组可以代表一个矩阵,可以直接用算术运算符运算。
可以使用data.T进行行列转换操作