深度学习入门系列二 NumPy库/Matplotlib库入门

NumPy

⚠️文件中如果引入numpy,文件名不能叫numpy,会覆盖掉numpy模块,导致numpy.array等函数无法使用。

1. 导入
import numpy as np
2. 生成NumPy数组
x = np.array([1.0, 2.0, 3.0])
print(x)  # [1.0, 2.0, 3.0]
type(x)  # <class 'numpy.ndarray'>
3. 算术运算
>>> x = np.array([1.0,2.0,3.0])
>>> y = np.array([2.0,4.0,6.0])
>>> x+y
array([3., 6., 9.])
>>> x-y
array([-1., -2., -3.])
>>> x*y
array([ 2.,  8., 18.])
>>> x/y
array([0.5, 0.5, 0.5])

⚠️两个ndarray的元素个数须相同,注“对应元素”英文是element-wise,“对应元素乘法” element-wise product。

>>> x/2
array([0.5, 1. , 1.5])

ndarray也可以与单一元素进行计算,称之为“广播”?,广播相当于标量拓展为与前面相同的维度。

4. 二维数组

⚠️需要双层[],比如 [ [ ], [ ] ]

A = np.array([[1,2], [3,4]])
B = np.array([[3,4], [5,6]])
print(A)
print(A.shape)  # (2,2)
print(A.dtype)  # int64
print(A + B)  # [[4,6], [8,10]]
print(A * B)  # [[3,8], [15,24]] 从代码的角度看(不从数学角度,存疑?)
5. 访问元素
A = np.array([[1,2],[3,4]]) 
print(A[0])  # [1 2]
print(A[0][1])  # 2

for row in A:
	print(row)  # [1,2]   [3,4]

其他访问方式:

>>> X = X.flatten()         # 将X转换为一维数组
>>> print(X)
[51 55 14 19  0  4]
>>> X[np.array([0, 2, 4])] # 获取索引为0、2、4的元素
array([51, 14,  0])

>>> X > 15
array([ True,  True, False,  True, False, False], dtype=bool)
>>> X[X>15]
array([51, 55, 19])

Matplotlib

1. 绘制函数图像

直接画一个sin函数

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 6, 0.1)
y = np.sin(x)

plt.plot(x, y)
plt.show()

x 是np.arange生成的[0, 0.1, 0.2, 0.3 0.4 … 5.8, 5.9]
y 是np.sin函数
然后传递给plt的plot方法,最后show

下面是sin和cos的函数图像叠加

x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()
2. 显示图片
import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread('lena.png') # 读入图像(设定合适的路径!)
plt.imshow(img)

plt.show()

本章只介绍了关于 Python 的最低限度的知识,想进一步了解 Python 的读者,可以参考下面这些图书。首先推荐《Python 语言及其应用》 一书。这是一本详细介绍从 Python 编程的基础到应用的实践性的入门书。关于 NumPy,《利用 Python 进行数据分析》 一书中进行了简单易懂的总结。此外,“Scipy Lecture Notes”这个网站上也有以科学计算为主题的 NumPy 和 Matplotlib 的详细介绍,有兴趣的读者可以参考。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值