NumPy数组

家住魔仙堡 提交于 2020-01-26 14:27:27

NumPy的数组类(numpy.array)中提供了很多便捷的方法,在实现深度学习时,我们将使用这些方法。

# 1.导入NumPy

import numpy as np

这条语句就是“将numpy作为np导入”的意思。通过写成这样的形式,之后NumPy相关的方法均可通过np来调用。

# 2.生成NumPy数组

A = np.array([1,2,3])

np.array()接收Python列表作为参数,生成NumPy数组。

# 3.NumPy的算术运算

x = np.array([1,2,3])
y = np.array([2,4,6])

print("对应元素加法x+y=",x+y)
print("对应元素减法x-y=",x-y)
print("对应元素乘法x*y=",x*y)
print("对应元素除法x/y=",x/y)

对应测试结果:

# 4.NumPy的N维数组

A = np.array([[1,2],[3,4]]) # 创建二维数组A
print(A) # 打印二维数组A

print(A.shape)  # 查看矩阵A的形状
print(A.dtype)  # 查看矩阵A中元素的数据类型

对应测试结果:

NumPy数组可以生成N维数组,这里只展示了二维数组(矩阵)的生成。

# 5.广播

A = np.array([[1,2],[3,4]])
B = np.array([10,20])

print(A*10)   # 矩阵与标量相乘
print(A*B)    # 不同形状的数组相乘

对应测试结果:

NumPy中,形状不同的数组之间也可以进行运算。上述例子A*10中,标量10被扩展成2*2的形状,然后再与矩阵A进行乘法运算。例子A*B中,一维数组B通过复制扩展成了2*2的形状,然后再与矩阵A进行乘法运算。这就是NumPy的广播功能。

# 6.访问元素

X = np.array([[51,55],[14,19],[0,4]])

# 通过下标直接访问
print(X[0])
print(X[0][1])

# 运用for语句访问
for row in X:
	print(row)
	
# 使用数组访问
X = X.flatten() # 将X转化为一维数组
print(X[np.array([0,2,4])]) # 访问索引为0,2,4的元素
print(X[X>15])  # 访问X中值大于15的元素

对应测试结果:

 

# 本博客参考了《深度学习入门——基于Python的理论与实现》(斋藤康毅著,陆宇杰译),特在此声明。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!