当前位置: 首页 > 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.lryc.cn/news/462846.html

相关文章:

  • postgresql 安装
  • 基于机器学习的天气数据分析与预测系统
  • Java项目-基于Springboot的在线外卖系统项目(源码+说明).zip
  • ANSYS Workbench纤维混凝土3D
  • 【Vue】Vue3.0(十)toRefs()和toRef()的区别及使用示例
  • 中科星图(GVE)——使用随机森林方法进行土地分类
  • 【蓝队技能】【C2流量分析】MSFCSSliver
  • 不推荐使用Scilab作为MATLAB的开源替代
  • C++智能指针及其应用
  • 06 算法基础:算法的定义、表现形式(自然语言、伪代码、流程图)、五个特性(有穷性、确定性、可行性、输入、输出)、好算法的设计目标
  • 【红外传感器】STM32C8T6标准库使用红外对管
  • STM32L010F4 最小系统设计
  • AI 工具大赏:探索智能时代的得力助手
  • 安通物流借助CRM重塑企业客户关系管理新格局
  • C++标准模板库--vector
  • 通信学习干货:运营商为什么要大力推广FTTR?
  • 【Spring篇】初识之Spring的入门程序及控制反转与依赖注入
  • OpenLayers:构建高质量的Web地图应用
  • Java比较两个Excel是否内容一致
  • UniApp入门教程
  • Vue.js中使用Element UI实现动态表单项管理及验证
  • 一插U盘就提示格式化?原因、恢复与预防全攻略
  • 云电脑使用教程标准版
  • 浏览器服务端文件下载控制(安全阻止、文件浏览器打开还是下载行为控制)
  • 机器学习——量子机器学习
  • [Linux] 创建可以免密登录的SFTP用户
  • 【部署篇】Redis-03主从模式部署(源码方式安装)
  • C/C++语言基础--C++四大类型转换讲解
  • KafKa 集群【docker compose】
  • 【工具篇】MLU运行XInference部署手册