list列表、tuple元组、set集合、dict字典,都属于容器,可以进行增删改查、计算元素的个数和排序等基本操作,注意并不是所有的全部都支持,具体功能略有不同。
numpy 科学计算库
numpy的核心数据结构是N维数组。具有向量和矩阵的功能。
numpy底层是用C语言实现的,所以执行速度很快。
numpy是第三方库,需要使用pip或conda进行安装使用。如果已经安装过anaconda 额外再安装,因为anaconda中已经包含了numpy。
import numpy as np #引入numpy包
#创建一维数组 参数传可迭代对象,如列表
arr = np.array([1,2,3,4,5])
#创建二维数组
arr2=np.array([[1,2,3,4],[5,6,7,8]])
#查看数组的维度
arr.ndim
#查看数据类型
arr.dtype
#重新设置数据类型
arr1=arr.astype(np.int64)
arr2.sum(axis=1) #axis=1对行求和
arr2.sum(axis=0) #axis=0对列求和
arr2.mean(axis=1)#求行平均值,如果不写axis,则对行列整体求平均值
arr2.var()#求方差
arr2.std()#求标准差
arr2.T#求逆矩阵
标量:单个数据,如1,2,3,4
向量:一维数组,将多个标量按照一定的顺序排列成一行或一列。[1,2,3,4]
矩阵:二维数组,成行成列的一堆数据。
张量:三维、四维、五维等高维数组。例如图像就属于三维的数组。
import matplotlib.pyplot as plt #引入图片的包
img = plt.imread('img.jpeg')
图像一般是三维的数组。第一个维度表示图片的高度,第二个维度表示图片的宽度,第三个维度表示彩色数据,用来控制图片的颜色。
#将可迭代对象转换成数组
import numpy as np #引入numpy
np.array([1,2,3,4]) #创建数组
x1 = np.linspace(start=1,stop=100,num=100) #等差数列,start表示起始值,stop表示结束值,num表示生成多少个元素
# arange生成等差数列,start起始值,stop结束值(不包含),step步长。
#注意linspace第三个参数控制的是元素的总个数,而arange控制的是步长。
np.arange(1,100,8)
#生成值全为1的数组
np.ones(shape=(3,5))#生成3行5列数组,里面的值全为1
#生成2行3列的数组,里面的值全为0
np.zeros(shape=(2,3))
np.ones_like(x1)#按照X1的形状生成数组,里面的值全为1
#根据某个矩阵生成对角矩阵(除了主对角线之外,其他值全为0)
np.diag(x1)
#单位矩阵
np.eye(3)
#将2个矩阵拼接一起
x2 = x1.reshape(5,20)
x3 = x1.reshape(5,20)
#按列的顺序,堆叠数组构成一个新数组
np.hstack((x2,x3)).shape
#按行的顺序,堆叠数组构成一个新数组
np.vstack((x2,x3)).shape
with open(file='b.txt',mode='r') as f:
while True:
line = f.readline()
if line:
print(line)
else:
break
2个数组之间做加减乘除运算时,他们的形状必须一致。
arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[1,1],[2,3]])
arr1+arr2
#内积
arr1 @ arr2