Python – Numpy入门笔记(上)
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
-
- 创建元素为0或1的数组
- 数组索引
-
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
文章版权归作者所有,未经允许请勿转载。
THE END