为什么要学习Numpy?
Numpy是Python环境下的一个数据处理模块,包含了大部分的高等数学运算方法,可以高效地计算高维数组的运算。这对于矩阵计算和人工智能领域的计算都是极为高效的。由于Numpy的内核是用C语言编写的,这一特效使得Numpy的运算速度大大超过用Python直接实现对应的运算。如果你想用Python进行数据处理分析,还是科学计算,或者编写人工智能,Numpy都是不可替代的利器。
安装方法:
Windows环境下,命令提示符 pip install numpy
引用Numpy,一般会写作
import numpy as np
Numpy 的数组
np.array()是最基本的Numpy数组创建方法,例如:
a = np.array([1,2,3]) 创建一维数组 1 2 3
b = np.array([[1,2,3],[4,5,6]]) 创建二维数组,也可创建更高维的,用方括号[]包起即可
1 2 3
4 5 6
也可以用该方法创建三维乃至更多维的数组。
调用数组中的单个元素,方法为 a[1] 调用一维数组中的下标为1的元素,即第2个元素。b[2,3] 调用二维数组中第一维下标为2,第二维下标为3的元素,即第3行第4列的元素。注意下标是从0开始的自然数,也就是第一个元素的下标为0,如a[0]
一维数组
a = np.array([1,2,3])
调用: a[0] a[1] a[2]
二维数组
b = np.array([[1,2,3],[4,5,6]])
调用 b[0,0] b[1,0]
创建全0数组
zeros((行数,列数))
ones((行数,列数))
full((行数,列数),元素)
a = np.zeros((2,2)) 2行 x 2列的全0数组
b = np.ones((1,2)) 1行 x 2列的全1数组
c = np.full((2,2),7) 2行 x 2列的全7数组
d = np.eye(2) 2阶眼数组
eye(3)
1 0 0
0 1 0
0 0 1
a[x,y]为取值x行,y列的数值。(x,y从0开始)
数组切片 a[:2,1:3] 表示a的0-1行,1到2列
array[x1:x2,y1:y2] 表示数组切片,从x1行开始,到小于x2的最后一行。从y1列开始,到小于y2的最后一行。(x1,y1从0开始)
a[2:2,1:3]为空数组[],因为2:2取值为空
数组元素个数 b.size
数组形状 b.shape
数组维度 b.ndim
数组元素类型 b.dtype
广播机制
假设 X 是个 2 * 5的矩阵,b 是个长度为 2 的列向量(shape=(2, 1)),以线性代数来说,它们是无法相加的,但在 numpy 中可以,numpy 会自动将 X 的每一列加上 b,相等于 X 加上了 5 个 b 组成的矩阵,这就是 numpy 的广播机制。
向量陷阱
创建两个随机数组:
a = np.random.randn(3)
b = np.random.randn(1, 3)
数组相加 a + b
同样形状的数组相加,生成新数组,每个位置的新值为两个数组同一位置的值相加之和
a = np.array([1,2,3])
b = np.array([2,2,3])
a + b
[3,4,6]
数组乘以数值 *
a = np.array([2,4,6])
a* 1.5
[3,6,9]
矩阵点乘 dot()
c= a.dot(b) 前提是a的列数等于b的行数,产出的矩阵,行数与a相等,列数与b相等。
矩阵聚合
最大值 max() 最小值 min() 求和 sum()
a.max() 整个矩阵的最大值,输出结果为单个数
a.max(axis=0) 取每一列上的最大值,输出结果为数组,元素个数等于列数
a.max(axis=0) 取每一列上的最大值,输出结果为数组,元素个数等于列数
min 和 sum 同理
矩阵转置.T()
a.T()
矩阵重塑 .reshape()
a.reshape(2,3) 将a中的元素
# 合并 a,b 两个数组,返回一个新数组
np.concatenate((a, b))
# 生成和 x 相同 shape 的全 1 数组
np.ones_like(x)
# 生成和 x 相同 shape 的全 0 数组
np.zeros_like(x)
# 生成和 x 相同 shape 的全 3 数组
np.full_like(x, 3)
附加:
--在Windows系统下基于Anaconda开发环境安装tensorflow的CPU版本--
pip install tensorflow
--GPU版本安装--
--Anaconda安装--
前提条件:
nVidia显卡驱动大于 410的版本,要求CUDA算力不低于3.0
CUDA版本10.0
cudnn版本7.4.1
第一步:
下载Anaconda 64位版本
在Windows下面需要将anaconda 加入环境变量,在我的电脑-系统属性-高级-环境变量中添加以下项目:
...\Anaconda3\
...\Anaconda3\Scripts
...\Anaconda3\Library\bin
加入系统变量后,在命令行下直接使用conda打开anaconda
在anaconda下面安装tensorflow 2.0 GPU版本
conda install tensorflow-gpu==2.0.0
命令行下打开jupyter环境
jupyter notebook 在浏览器中打开jupyter notebook
tf.test.is_gup_available() 测试GPU是否可以使用