import numpy as np
# 创建矩阵
# 创建一个2x3的矩阵,所有元素都为0
a = np.zeros((2, 3))
# 创建一个3x3的矩阵,所有元素都为1
b = np.ones((3, 3))
# 创建一个3x3的矩阵,所有元素都为随机数
c = np.random.rand(3, 3)
# 矩阵运算
# 矩阵相乘
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.dot(a, b)
# 矩阵转置
a = np.array([[1, 2], [3, 4]])
b = np.transpose(a)
# 矩阵求逆
a = np.array([[1, 2], [3, 4]])
b = np.linalg.inv(a)
# 数学函数
# sin函数
a = np.sin(1.0)
# cos函数
b = np.cos(1.0)
# exp函数
c = np.exp(1.0)
# log函数
d = np.log(1.0)
# 统计函数
# 求和
a = np.sum([1, 2, 3])
# 求平均值
b = np.mean([1, 2, 3])
# 求标准差
c = np.std([1, 2, 3])
# 求最大值
d = np.max([1, 2, 3])
# 求最小值
e = np.min([1, 2, 3])
# 数组操作
# 数组拼接
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.concatenate((a, b))
# 数组切片
a = np.array([1, 2, 3, 4, 5])
b = a[1:3]
# 数组复制
a = np.array([1, 2, 3])
b = np.copy(a)
#线性代数
# 求解线性方程组
a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
x = np.linalg.solve(a, b)
# 特征值和特征向量
a = np.array([[1, 2], [3, 4]])
w, v = np.linalg.eig(a)
# 奇异值分解
a = np.array([[1, 2], [3, 4], [5, 6]])
u, s, vh = np.linalg.svd(a)
#图像处理
# 读取图像
img = np.imread('image.png')
# 调整图像大小
img_resized = np.resize(img, (100, 100))
# 旋转图像
img_rotated = np.rot90(img)
# 保存图像
np.save('image.npy', img)
#数组形状操作
# 改变数组形状
a = np.array([[1, 2], [3, 4], [5, 6]])
b = a.reshape(2, 3)
# 扁平化数组
a = np.array([[1, 2], [3, 4], [5, 6]])
b = a.flatten()
# 数组转置
a = np.array([[1, 2], [3, 4]])
b = a.T
#数组排序
# 对数组排序
a = np.array([3, 1, 4, 2, 5])
b = np.sort(a)
# 对二维数组排序
a = np.array([[3, 1], [4, 2], [5, 6]])
b = np.sort(a, axis=0)
#数组统计
# 计算数组的均值、标准差和方差
a = np.array([1, 2, 3, 4, 5])
b = np.mean(a)
c = np.std(a)
d = np.var(a)
# 计算数组的最大值、最小值和范数
a = np.array([1, 2, 3, 4, 5])
b = np.max(a)
c = np.min(a)
d = np.linalg.norm(a)
#广播
# 对数组进行广播
a = np.array([1, 2, 3])
b = np.array([[1], [2], [3]])
c = a + b
#多项式
# 生成多项式
a = np.poly1d([1, 2, 3])
b = np.poly1d([4, 5])
c = a * b
# 求多项式的根
a = np.poly1d([1, -2, 1])
b = np.roots(a)