Python入门笔记
学习numpy库。
生成数组
import numpy as np
// 生成numpy数组
x = np.array([1.0, 2.0]) # 一维数组
y = np.array([[1, 2], [3, 4]]) # 二维数组
简单的加减乘除运算(因为numpy的广播功能,实现的对应元素做运算的功能)
x+y # [[2. 4.], [4. 6.]]
x-y # [[0. 0.], [-2. -2.]]
x*y # [[1. 4.], [3. 8.]]
x/y # [[1. 1.], [0.33333333, 0.5]]
做矩阵乘除法的运算
import numpy as np
// 生成numpy数组
x = np.array([1.0, 2.0]) # 1*2的数组
y = np.array([[1, 2], [3, 4]]) # 2*2的数组
np.dot(x, y) # [ 7. 10.]
还有一些特殊的用法
a.transpose() # 矩阵的转置
np.linalg.inv(a) # 矩阵的求逆运算
np.linalg.eig(a) # 求取矩阵的特征向量
np.trace(a) # 求取矩阵的迹
numpy.linalg.det() # 矩阵的行列式的值
...
np.append(x, a) # 向数组中添加元素
x.ndim # 数组中最小维度,上式中x.ndim=1(行数)
x.size # 返回数组x的大小,x.size = 1*2 = 2
x.reshape(1,x.size ) # 将数组x的形状变为 行数=1,列数=x.size=2 模样
...
np.log(x) # 对数组x中的每个元素进行求对数
np.sum(x) # 对数组x中的每个元素进行求和运算
np.max()
np.min()
np.mean() # 最大值、最小值、平均值
综合一下
import numpy as np
t = np.arange(1, 3)-1 # 生成一个 1*2的数组 [0 1]
x = np.arange(1, 11) # 生成一个 1~10的数组
x = x.reshape(2, 5) # 将数组的形状变为 2*5
y = [4, 2] # 生成数组y = [4, 2]
y = x[np.arange(2), y] # np.arange(2) = [0, 1]
# [np.arange(2), y] = [(0, 4), (1, 2)]
print(t)
print(x)
print(y) # 打印输出 [5 8]
学习matplotlib库
可以是呀matplotlib库中的pyplot进行图形的绘制,下面简单的绘制一个正选函数的二维折线图。
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y = np.sin(x) # 求取sin
# 绘制图形
plt.plot(x, y)
plt.show() # 对图形进行打印
得到输出
下面对该图片添加坐标轴,标题等操作
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y = np.sin(x) # 求取sin
# 绘制图形
plt.plot(x, y,label="sin", linewidth=5.0) # 图形的标题为sin
plt.plot(x, np.cos(x),label="cos", linewidth=2.5) # 添加一条cos
plt.xlabel("x") # x轴标签
plt.ylabel("y") # y轴标签
plt.title('sin & cos') # 标题
plt.legend() # 显示图形索引
plt.show() # 对图形进行打印
得到如下图