Numpy
- 创建数组
- 创建元素为0或1的数组
-
# 导入包
import numpy as np
# 创建一个3行3列的数组
# empty:使用shape参数生成数组形状
np.empty(shape=(3, 3))
-
import numpy as np
# eye:创建一个对角线元素全为1的数组
np.eye(3)
-
import numpy as np
# identity:创建单位矩阵,使用参数3生成3行3列的单位矩阵
np.identity(3)
-
import numpy as np
# ones:生成元素全部为1 的数组
np.ones(shape=(2,4))
-
import numpy as np
# zeros:生成元素全部为0 的数组
np.zeros(shape=(2,4))
-
import numpy as np
# full:与前面两种方法不同的是,full可以通过fill_value指定元素值
np.full(shape=(2, 4), fill_value=4)
- 列表转换为数组
-
import numpy as np
# 创建一维数组
np.array([1, 2, 3])
# 创建二维数组
np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
- 生成随机数字
-
import numpy as np
# arange:生成起始值为1,终止值为10,步长为2的列表
np.arange(start=1, stop=10, step=2)
# 可使用array转换维度数组
-
import numpy as np
# linspace:生成起始值为1,终止值为10,生成数量为6的列表
np.linspace(start=1, stop=10, num=6)
# logspace方法类似linspace,不过是以log为刻度
np.logspace(start=1, stop=10, num=6)
- 生成特殊数组
-
import numpy as np
# diag:生成对角矩阵
np.diag([1, 2, 3, 4])
# 将数组传入时,diag方法的作用就是提取数组的对角线元素
a = np.diag([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
-
import numpy as np
# tri:生成三角矩阵,第一个参数是数组的行,第二个参数是数组的列
np.tri(3, 5
- 数组索引
-
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 下标为0的元素
a[0]
# 下标为-1的元素,通常是数组最后一个
a[-1]
# 下标从1到3,且不包含3
a[1:3]
# 下标从2到末尾的切片
a[2:]
# 下标从1到5的切片,不包含5,且步长为2
a[1:5:2]
-
import numpy as np
# 创建二维数组
a = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
# 查看数组形状
a.shape
# 查看下标为1,下标为2的所有行元素
a[1:3]
# 选择行标为1:3,列标为1:2的所有元素
a[1:3, 1:2]
# 选择0行,2行,1列,2列的元素
a[[0, 2], [1, 2]]
- 排序与查询
-
import numpy as np
# 创建二维数组
a = np.array([[1, 6, 3, 13],
[16, 2, 7, 14],
[9, 10, 15, 12],
[4, 8, 11, 5]])
# 按行排序
np.sort(a, axis=0)
# 按列排序:较小值在第一列,较大值在后其后列
np.sort(a, axis=1)
# axis=None 按照整体排序,数组会被压缩为一个序列
np.sort(a, axis=None)
-
import numpy as np
# 创建二维数组
a = np.array([[1, 6, 3, 13],
[16, 2, 7, 14],
[9, 10, 15, 12],
[4, 8, 11, 5]])
# where方法获取矩阵内符合条件的坐标
# 获取大于7的所有值坐标
np.where(a > 7)
-
import numpy as np
# 创建二维数组
a = np.array([[1, 6, 3, 13],
[16, 2, 7, 14],
[9, 10, 15, 12],
[4, 8, 11, 5]])
# argmin & argmax :获取最大最小值得下标
# 行最小值
np.argmin(a, axis=0)
# 列最小值
np.argmin(a, axis=1)
# 整体最小值
np.argmin(a, axis=None)
- 随机数生成器
-
import numpy as np
# 生成10个随机数
np.random.rand(10)
# 生成三行三列的随机数组
np.random.rand(3, 3)
# 生成标准正态分布随机数
np.random.randn()
# 生成10个正态随机数
np.random.randn(10)
# 生成三行三列的正态随机数
np.random.randn(3, 3)
-
import numpy as np
# randint:生成整形随机数
# 生成[1, 10)的随机数
np.random.randint(low=1, high=10)
# 生成10个随机数
np.random.randint(low=1, high=10, size=10)
# 生成3行3列
np.random.randint(low=1, high=10, size=(3, 3))
-
import numpy as np
# choice: 随机抽取元素中五次样本
np.random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
# permutation:随机重排序列
np.random.permutation([1, 2, 3, 4, 5, 6, 7, 8, 9])
- 数学函数
-
import numpy as np
# linspace函数生成一个范围在0到π的等间距的11个数,然后计算正弦值、余弦值、正切值
# 正弦函数
np.sin(np.linspace(1, np.pi, 11))
# 余弦函数
np.cos(np.linspace(1, np.pi, 11))
# 正切函数
np.tan(np.linspace(1, np.pi, 11))
-
import numpy as np
# 反正弦函数、反余弦函数、反正切函数
np.arcsin(np.linspace(0, 1, 11))
np.arccos(np.linspace(0, 1, 11))
np.arctan(np.linspace(0, 1, 11))
-
import numpy as np
# 弧度转角度
np.degrees([np.pi, np.pi/2])
# 角度转弧度
np.radians([180, 90])
-
import numpy as np
# 指数与对数
# 自然常数e的指数值
np.exp([1, 2, 3, 4, 5])
# 计算2的指数值
np.exp2([1, 2, 3, 4, 5])
# 计算以自然常数为底的对数
np.log([1, np.e, ])
# 计算以2为底的对数
np.log2([1, np.e, ])
# 计算以10为底的对数
np.log10([1, np.e, ])
-
import numpy as np
# 约数
# 四舍五入
np.around([0.3, 1.7])
# 四舍五入并保留整数
np.rint([-0.2, 1.1])
# 向0取整
np.fix([-1.6, 1.7, 1.2])
# 向下取整
np.floor([-1.6, 1.7, 1.2])
# 向上取整
np.ceil([-1.6, 1.7, 1.2])
版权声明:
作者:Nuanxinqing
链接:https://6b7.org/313.html
文章版权归作者所有,未经允许请勿转载。