深度学习笔记:python的numpy和matplotlib库

1 numpy库
numpy为python数学计算库,里面的数组类提供大量便捷的数组和矩阵运算方法

创建numpy数组:

import numpy as np
x = np.array([1.0, 2.0, 3.0])

创建二维数组:

import numpy as np
a = np.array([[1, 2], [3, 4]])
a.shape  # output: (2, 2)
a.dtype  # output: dtype('int64')

shape:查看二维数组形状
dtype:查看数组数据类型

数学上一步将一维数组称为向量,二维数组称为矩阵,三维及以上数组称为张量(tensor)

numpy数组运算:

import numpy as np
x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
x + y # output: [3, 6, 9]
x * y # output: [2, 8, 18]

当两个数组长度和维数相同时,数组可以直接加减乘除。这一计算叫做element-wise运算

numpy数组广播:

在numpy里面形状不同的数组也可以计算,数组和常数也可以计算,这依靠numpy里自动的广播功能将数组扩充实现。广播本质上是将维数较低的数组自动扩充为高维数数组然后进行element-wise计算
深度学习笔记:python的numpy和matplotlib库_第1张图片
深度学习笔记:python的numpy和matplotlib库_第2张图片

import numpy as np
a = np.array([[1, 2], [3, 4]])
a * 10	# output: [[10, 20], [30, 40]]
b = np.array([10, 20])
a * b	# output: [[10, 40], [30, 80]]

访问元素:
元素索引从0开始

import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
a[0]	# [1, 2]
a[1][0]	# 3
for row in a:	# foreach
	print(row)

a = a.flatten()	# [1, 2, 3, 4, 5, 6]
a[np.array([0, 2, 4])]	# 1, 3, 5
a > 3 # [False, False, False, True, True, True]
a[a > 3] # [4, 5, 6]

flatten: 把数组转化为一维数组

a[np.array([0, 2, 4])]获取a第0, 2, 4位置的元素

a > 3 对数组进行比较运算会对每个元素依次进行比较,返回一个boolean数组,其中True和False代表各个元素比较结果

a[a > 3]返回a里面所以大于3元素组成的子列表

2 matplotlib库

绘制sin函数

import numpy as np
import matplotlib.pyplot as plt

# generate data
x = np.arange(0, 6, 0.1) # generate numbers from 0 to 6 at 0.1 interval
y = np.sin(x) # create sin function for all points in x

# plot the graph
plt.plot(x, y) # plot graph
plt.show() # display graph

深度学习笔记:python的numpy和matplotlib库_第3张图片
np.arrange(start, end, step):以step值为单位,生成从start到end的数据
plt.plot(x, y) 绘图
plt.show() 显示绘图结果

生成sin和cos并使用pyplot添加标签

import numpy as np
import matplotlib.pyplot as plt

# generate data
x = np.arange(0, 6, 0.1) # generate numbers from 0 to 6 at 0.1 interval
y1 = np.sin(x) # create sin function for all points in x
y2 = np.cos(x)

# plot the graph
plt.plot(x, y1, label = "sin") # plot graph
plt.plot(x, y2, linestyle = "--", label = "cos")
plt.xlabel("x")		# label on x-axis
plt.ylabel("y")		# label on y-axis
plt.title("sin & cos")	# title
plt.legend()
plt.show() # display graph

深度学习笔记:python的numpy和matplotlib库_第4张图片
读取图片

import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread("lena.png")
plt.imshow(img)
plt.show()

plt.imread(“path”): 读取图片,里面传入图片文件路径
深度学习笔记:python的numpy和matplotlib库_第5张图片

你可能感兴趣的:(人工智能,实习记录,numpy,matplotlib,python,深度学习,开发语言)