numpy库

 

因为我记不住所以扔上来

开始前先导入库

import numpy as np //np为其别名

numpy中所有运算均是围绕数组进行的,所以运行前要将计算的数据表示成数组的形式

#由于懒得打于是这里大部分都没有运行结果
>>>np.array([1,2,3,4,5])

#也可用np.zeros()创建一个全零的数组
>>>np.zeros((3,2))#传入的参数是数组的尺寸,(3,2)代表一个三行两列的数组

#类似地,可以使用np.ones()创建一个全是一的数组
>>>np.ones((2,4))

#可使用np.arange()创建一个递增或递减的数列
>>>np.arrange(3,7)
array([3,4,5,6])

#np.linspace()会返回介于某个区间等间距分布的数
>>>np.linspace(0,1,5) #前面两个参数是区间的范围,第三个参数是输出样本的总数
array([0. ,0.25,0.5,0.75,1. ])

#可通过np.random.rand()生成一个随机的数组
>>>np.random.rand(2,4) #传入的参数为其尺寸

numpy中可以创建多维数组,二维数组可以用来存放矩阵或者表格数据,多维数组通常用来表示更加复杂的数据

#在numpy中可用shape获取数组尺寸
>>>a=np.zeros((3,2))
>>>a.shape
(3,2)

#numpy中数组默认的数据类型是64位的浮点数
>>>a=np.zeros((4,2))
>>>a.dtype
dtype('float64')

#可以在创建数组时通过dtype指定其他的数据类型
>>>a=np.zeros((4,2),dtype=np.int32)

#对于现有的数组也可通过astype(...)来转换数据类型
>>>a=np.zeros((2,4))
>>>b=a.astype(int)
>>>b
array([[0,0,0,0],
      [0,0,0,0]])

以下为数学运算部分

>>>a=np.array([1,2,3])
>>>b=np.array([4,5,6])
#两个相同尺寸的数组可以直接进行四则运算
>>>a+b
array([5,7,9])
>>>a/b
array([0.25,0.4,0.5])
>>>np.dot(a,b)#对两个向量进行点乘运算
32
>>>a@b#等同于np.matmul(),进行矩阵的乘法运算
array([[2,4],
       [6,8]])
>>>np.sqrt(a)#对所有数依次求平方根
array([1.        ,1.41421356,1.73205081])
>>>np.sin(a)#对所有数求sin值
array([0.84147098,0.90929743,0.14112002])
>>>np.cos(a)#同上
#不想打了:)
>>>np.log(a)#对所有数进行对数运算
>>>np.power(a,2)#对所有数进行指数运算
array([1,4,9],dtype=int32)

#也可直接将一个numpy数组与单独的一个数做运算
>>>a*5#分别计算各个元素和这个数的乘积
array([5,10,15])

#也可按条件筛选出指定的数
>>>a=np.arange(10)
>>>a
arrar([0,1,2,3,4,5,6,7,8,9,10])
>>>a[a<3]
array([0,1,2])
>>>a[(a>3)&(a%2==0)]
array([4,6,8])

>>>a=np.array([[1,2,3],
               [4,5,6]])
>>>a[0,0:2]#获取第一行,1-2列的所有数据
#0:2代表可以取[0,2)这个区间但是不包括2
array([1,2])
>>>a[0, : ]#获取第一行但是所有列的元素
>>>a[0]#不写冒号也是可以的
array([1,2,3])
>>>a=np.array([1,2,3,4,5,6,7,8,9])
>>>a[0:9:2]#第二个冒号的后面可以跟一个跨度(stride),当跨度为2时会每隔一个数取一个数
array([1,3,5,7,9])

>>>a=np.array([1,2,3,4,5])
>>>a[4:1:-2]#跨度也可取负值,从右往左逆向返回这个数组
array([5,3])
>>>a[::-1]#将数组翻转
array([5,4,3,2,1])