Python Numpy快速创建包含初始值的N维数组的函数介绍及用法汇总(附python代码)

Python Numpy快速创建包含初始值的N维数组的函数介绍及用法汇总(附python代码),第1张

Python Numpy快速创建包含初始值的N维数组函数介绍及用法汇总(附python代码) 1. 快速创建包含初始值的N维数组的函数:
  1. arange() – 创建指定数值范围的一维数组,需要指定起始值、终止值和步长,在创建的数组中不包含终止值
  2. linspace() – 与arange()函数类似,同样需要指定起始值和终止值,再设定数量(num),但是在创建的数组中包含终止值
  3. logspace() – 与linspace()函数类似,不过logspace()函数是用于创建等比数列,其中起始值与终止值均为10的幂
  4. zeros() – 创建元素均为“0”的数组;常用参数:shape - 用于指定数组的形状;dtype - 用于指定数值类型,默认值为浮点数(float)
  5. ones() – 类似于zeros()函数,只是创建的元素均为“1”;常用的参数有:shape和dtype,用法与zeros()一致
  6. eye() – 用于生成对角线数字为“1”,其他数字为“0”的数组,类似于对角矩阵
  7. diag() – 与eye()函数类似,但可以指定对角线中的元素,可以是“0”或其他值,而对角线之外的其他元素都为“0”
2. 详细介绍和比较各种函数的用法及示例代码

1. arange() 创建指定数值范围的一维数组,需要指定起始值、终止值和步长,在创建的数组中不包含终止值,数组类型默认为整数类型(int)

import numpy as np
a = np.arange(0, 10, 1)
print(a)


2. linspace() 与arange()函数类似,同样需要指定起始值和终止值,第3个参数是数量(num),但是在创建的数组中会包含终止值

# 对比arange()与linspace()函数的执行结果
a = np.arange(0, 10, 1)
b = np.linspace(10, 20, 5)
c = np.linspace(10, 20, 5, dtype=int)
print("a:", a)
print("b:", b)
print("c:", c)


arange函数与linspace函数的区别有2点:
(1) linspace()在默认情况下,数组中包含终止值,而arange()是不包含终止值的。
(2) linspace()在默认情况下,数组中元素的类型为浮点数,而arange()是整数。

3. logspace() 与linspace()函数类似,不过logspace()函数是用于创建等比数列,其中起始值与终止值均为10的幂

# logspace() 的用法展示
a = np.logspace(0, 9, 10)
b = np.logspace(0, 9, 10, base=2)
c = np.logspace(0, 9, 10, base=2, dtype=int)
d = np.logspace(0, 9, 10, base=3, dtype=int)
print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)


4. zeros() 创建元素均为0的数组;常用参数:shape - 用于指定数组的形状;dtype - 用于指定数值类型,默认值为浮点数(float)

import numpy as np
a = np.zeros(4)
# 设置shape=(4, 4)
b = np.zeros((4, 4))
display(a, b)


5. ones() 类似于zeros()函数,只是创建的元素均为“1”;常用的参数有:shape和dtype,用法与zeros()基本一致, 可以直接设置shape参数,也可以与reshape()函数搭配使用

# 1. ones()用法与zeros()相类似,也可以与reshape()函数搭配使用
a = np.ones(6).reshape(3, 2)

# 2. 可以设置数组中数字的类型,如int, 默认为float
b = np.ones((3, 3), dtype=int)
print("a:n", a)
print("b:n", b)


6. eye() 用于生成对角线数字为“1”,其他数字为“0”的数组,类似于对角矩阵

a = np.eye(3)
b = np.eye(3, dtype=int)
print("a:n", a)
print("b:n", b)


7. diag() 与eye()函数类似,但可以指定对角线中的元素,可以是“0”或其他值,而对角线之外的其他元素都为“0”

# 1. diag()的基本用法:创建对角线数据为12345,其他元素为“0”的矩阵
x = np.arange(1, 6, 1)
print("x:n", x)
print("对角线为12345的矩阵:n", np.diag(x))

# 2. diag()函数的用法二
x = np.arange(9).reshape((3, 3))
print("x:n", x)
# 提前并输出x矩阵的对角线上的数据
print("np.diag(x):n", np.diag(x))
# 对角线上的元素与x矩阵对角线上的元素一致,其他值为"0"的矩阵
print("np.diag(np.diag(x)):n", np.diag(np.diag(x)))

3. 结束语

总结这些函数的用法比较:

  1. 创建一维数组的函数:arange(), linspace() 和logspace()
    arange()创建的数组中是不包含终止值的,并且数值的默认类型是整数型
    linspace()创建的数组中是包含终止值的,而数值的默认类型是浮点数
  2. 创建N维数组的函数:zeros()和ones()
    zeros()与ones()的使用方法基本一致;可以直接设置参数shape, 也可以与reshape()函数搭配使用;数值的默认类型为浮点数
  3. 创建N维矩阵的函数:eye()和diag()
    eye()创建的矩阵对角线上的数都是"1", 数值的默认类型为浮点数
    diag()可创建对角线上的数是任何数值,对角线以外的其他元素均为"0"值

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5680494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存