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

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 np

if __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 np

if __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 np

if __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.kler.cn/news/350719.html

相关文章:

  • 新手直播方案
  • 隨筆 20241025 Kafka数据一致性的韭菜比喻
  • 学习webservice的心得
  • CORS预检请求配置流程图 srpingboot和uniapp
  • 庐阳区2023年信息学竞赛试题
  • 基于.NET 8.0,C#中Microsoft.Office.Interop.Excel来操作office365的excel
  • Clip模型详解
  • WebSocket在建立连接时,确实也需要进行TCP的三次握手
  • 【深度学习代码调试1】环境配置篇(上) -- 安装PyTorch(安利方法:移除所有国内源,使用默认源)
  • 大模型量化算法之Smoothquant
  • GCC(GNU Compiler Collection)部分参数解释
  • 网站设计之网站设计总结
  • 深度学习:模型攻击(Model Attack)详解
  • 计算机网络——应用层(DNS域名系统、文件传输协议FTP、远程终端协议TELNET、万维网)
  • 数据库->库的操作
  • CCleaner Pro v6.29.11342 系统清理优化软件绿色便携版
  • 如何匿名浏览网站,保护在线隐私?
  • Canmv k230 C++案例1.2——image classify项目 C++代码分析(待完成)
  • 网络安全公司及其主要产品介绍
  • Django CORS跨域支持
  • 基于Python的博客系统
  • Android10 recent键相关总结
  • Spring Boot框架下大创项目流程自动化
  • 【论文阅读】03-Diffusion Models and Representation Learning: A Survey
  • C++ | Leetcode C++题解之第486题预测赢家
  • Android activity 启动流程