当前位置: 首页 > news >正文

Python库numpy之三

Python库numpy之三

  • # NumPy数组创建函数
    • 二维数组创建函数
      • numpy.eye
      • 应用例子
      • numpy.diag
      • 应用例子
      • numpy.vander
      • 应用例子

# NumPy数组创建函数

二维数组创建函数

numpy.eye

词法:numpy.eye(N, M=None, k=0, dtype=<class ‘float’>, order=‘C’, *, device=None, like=None)

numpy.eye产生一个二维数组,对角线上的值为 1,其他位置的值为0。

变量说明

  • N,该参数类型是int
    N是输出二维数组的行数

  • M,该参数类型是int, 是可选的
    M是输出二维数组的列数。如果None,则默认为参数N

  • k,该参数类型是int, 是可选的
    对角线索引:
    0,表示主对角线,
    正值,表示上对角线,
    负值,表示下对角线。

  • dtype,该参数类型是data-type, 是可选的
    返回数组的数据类型

  • order,该参数类型是{‘C’, ‘F’}, 是可选的
    输出数组的存储方式
    ‘C’,以行优先顺序存储在内存中,C 风格
    ’F‘,以列优先顺序存储在内存中,Fortran 风格

  • device,该参数类型是字符串, 是可选的
    用于放置创建的阵列的设备。默认值:None。
    仅适用于 Array-API 互操作性,因此如果通过,则必须为“cpu”。

  • like,该参数类型是array_like, 是可选的
    允许创建非 NumPy 数组的引用对象。如果以参数like传入的数组支持 array_function 协议,则结果将由它定义。在这种情况下,它确保创建一个与通过此参数传入的数组对象兼容的数组对象。

应用例子

import numpy as npif __name__ == "__main__":m0 = np.eye(2, dtype=int)m1 = np.eye(4, k=0)m2 = np.eye(4, k=1)m3 = np.eye(4, k=-1)print(m0)print("-*-"*8)print(m1)print("-*-"*8)print(m2)print("-*-"*8)print(m3)

程序运行的屏幕输出

[[1 0][0 1]]
-*--*--*--*--*--*--*--*-
[[1. 0. 0. 0.][0. 1. 0. 0.][0. 0. 1. 0.][0. 0. 0. 1.]]
-*--*--*--*--*--*--*--*-
[[0. 1. 0. 0.][0. 0. 1. 0.][0. 0. 0. 1.][0. 0. 0. 0.]]
-*--*--*--*--*--*--*--*-
[[0. 0. 0. 0.][1. 0. 0. 0.][0. 1. 0. 0.][0. 0. 1. 0.]]

numpy.diag

词法:numpy.diag(v, k=0)
numpy.diag提取对角线或构造对角线数组。

  • v,该参数类型是类数组
    如果 v 是二维数组,则返回其第 k 个对角线的副本。如果 v 是一维数组,则返回 v 在第 k 对角线上的二维数组。

  • k,该参数类型是int, 是可选的

应用例子

import numpy as npif __name__ == "__main__":x = np.arange(9).reshape((3,3))y = np.diag(x)z = np.diag(y)   print(x)print("-*-" * 8)print(y)print("-*-" * 8)print(z)x1 = np.arange(16).reshape((4,4))y1 = np.diag(x1, k=1)z1 = np.diag(x1, k=0)print("-*-" * 8)print(x1)print("-*-" * 8)print(y1)print("-*-" * 8)print(z1)

程序运行的屏幕输出

C:\>python numpy_6.py
[[0 1 2][3 4 5][6 7 8]]
-*--*--*--*--*--*--*--*-
[0 4 8]
-*--*--*--*--*--*--*--*-
[[0 0 0][0 4 0][0 0 8]]
-*--*--*--*--*--*--*--*-
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11][12 13 14 15]]
-*--*--*--*--*--*--*--*-
[ 1  6 11]
-*--*--*--*--*--*--*--*-
[ 0  5 10 15]

numpy.vander

词法:numpy.vander(x, N=None, increasing=False)

生成范德蒙矩阵。

输出矩阵的列是输入向量的幂。幂的顺序由递增布尔参数决定。具体来说,当increase为False时,第i个输出列是输入向量按元素求N - i - 1次方。这种每行都呈几何级数的矩阵就是范德蒙。

  • x,该参数类型是类数组
  • N,该参数类型是int, 是可选的
  • increasing,该参数类型是bool, 是可选的

应用例子

import numpy as npif __name__ == "__main__":arr = np.array([1, 2, 3, 5])m1 = np.vander(arr, N=3)m2 = np.vander(arr)m3 = np.vander(arr, N=3, increasing=True)print(arr)print("-*-" * 8)print(m1)print("-*-" * 8)print(m2)print("-*-" * 8)print(m3)
C:\>python numpy_7.py
[1 2 3 5]
-*--*--*--*--*--*--*--*-
[[ 1  1  1][ 4  2  1][ 9  3  1][25  5  1]]
-*--*--*--*--*--*--*--*-
[[  1   1   1   1][  8   4   2   1][ 27   9   3   1][125  25   5   1]]
-*--*--*--*--*--*--*--*-
[[ 1  1  1][ 1  2  4][ 1  3  9][ 1  5 25]]

http://www.mrgr.cn/news/51783.html

相关文章:

  • CCleaner Pro v6.29.11342 系统清理优化软件绿色便携版
  • PyQt入门指南十八 QSpinBox和QDoubleSpinBox微调框组件
  • 冒泡排序.
  • QCOM-Tools 高通工具QXDM、QCAT和QPST的使用
  • AI大模型带来哪些创业机遇?
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
  • 重构长方法之以方法对象取代方法
  • 爬虫逆向
  • 数据结构:数字统计
  • 【分布式微服务云原生】《Redis 数据持久化与高可用高并发实战指南》
  • python 日志库loguru
  • 可变长子网掩码、子网汇聚、计算超网地址的具体计算公式及教程
  • 力扣题51~55
  • 基于SpringBoot农场管理平台【附源码】
  • C++系统教程005-数据类型04-(数据的输入与输出)
  • 数据类型转换
  • STM32CUBEIDE安装教程
  • 数据结构——顺序表的基本操作
  • 为Vision Pro和空间计算新手打造:通过Siri交互3D模型的练手项目
  • 区间动态规划