第六节,Python的科学计算包——Numpy

时间:2023-03-08 17:17:29
第六节,Python的科学计算包——Numpy

1、基本类型(array)

import numpy as np
a=[1,2,3,4]
b=np.array(a) #array([1,2,3.4])
type(b) #<type 'numpy.ndarray'>
b.shape #(4,) c=[[1,2],[3,4]] #二维列表
d=np.array(c) #二位numpy数组
d.shape #(2,2)
d.max(axis=0) #找维度0,列的最大值,即最后一个维度上的最大值,array([3,4])
d.max(axis=1) #找维度1,行的最大值,即倒数第二个维度上的最大值,array([2,4])
d.flatten() #展开一个Numpy数组为1维数组,array([1,2,3,4])
# 3*3的浮点型2维数组,并且初始化所有元素值为1
e = np.ones((3,3),dtype=np.float)

2、线性代数模块

在深度学习相关的数据处理核运算中,线性代数模块是其中最常用的,结合Numpy提供的基本函数,可以对向量、矩阵或是多维张量进行一些基本的运算。

import numpy as np
b=np.array([
[1,2,3],
[4,5,6],
[7,8,9]
])
c=np.array([1,0,1])
np.dot(b,c) #矩阵相乘,注意维度,array([4,10,16])
d=np.array([
[2,1],
[1,2]
])
'''
求正定矩阵的本征值和本征向量
本征值为u,array([3.,1.])
本征向量构成的二维array为v
eig()是一般情况的本征值分解,对于更常见的对称实数矩阵
eigh()更快更稳定,不过输出的值的顺序和eig()是相反的
'''
u,v=np.linalg.eig(d)

3、随机模块(random)

import numpy as np
import numpy.random as random
# 设置随机数种子
random.seed(42)
#产生一个1*3,【0,1】之间的浮点型随机数
random.rand(1,3)
#产生10个【1,6】之间的整型随机数
random.randint(1,6,10)
#产生2*5的标准正态分布样本
random.normal(size=(5,2))
# 对a进行in-place乱序,在训练数据时会用到。
random.shuffle(a)