预存
Document
当前位置:文库百科文章详情
Python中的数字型数组(Numpy)教程
来源: 时间:2022-12-16 16:28:26 浏览:3122次

NumPy的网页:

ASE大量使用了Python扩展模块NumPy。NumPy模块定义了一个ndarray类型,该类型可以保存大型统一多维数字数据数组。数组类似于listtuple,但它功能更强大,效率更高。

numpy的范例

>>>import numpy as np

>>> a = np.zeros((3, 2))

>>> a[:, 1] = 1.0

>>> a[1] = 2.0

>>> a

array([[ 0.,  1.],

       [ 2.,  2.],      

       [ 0.,  1.]])

>>> a.shape

(3, 2)

>>> a.ndim

2

线性代数包numpy的范例2

>>>import numpy as np

>>>

>>># 构建一个随机的厄米矩阵, H

>>> H = np.random.rand(6, 6) + 1.j * np.random.rand(6, 6)

>>> H = H + H.T.conj()

>>>

>>> # 求本征值和旋转矩阵

>>> eps, U = np.linalg.eigh(H)

>>>

>>> # 本征值排序

>>> sorted_indices = eps.real.argsort()

>>> eps = eps[sorted_indices]

>>> U = U[:, sorted_indices]

>>>

>>> # 使numpy数组的输出更加整洁:

>>> np.set_printoptions(precision=3, suppress=True)

>>>

>>> # 检查U是否能将H对角化:

>>> print(np.dot(np.dot(U.T.conj(), H), U) - np.diag(eps))

>>> print(np.allclose(np.dot(np.dot(U.T.conj(), H), U), np.diag(eps)))

>>>

>>> # 验证U中的列是H的本征矢量:

>>> np.allclose(np.dot(H, U[:, 3]), eps[3] * U[:, 3])

>>> np.allclose(np.dot(H, U), eps * U)

一维数组与二维数组相乘的规则:

  • 1维数组按照(1,N)数组来处理(行向量)

  • 左乘和右乘是相同的

  • 一个长度为m的行向量可以与一个nxm的矩阵相乘,产生的结果相当于将行向量复制n份作为n行,然后与矩阵的各元素分别相乘,结果仍为nxm阶的矩阵。

  • 一个长度为n的列向量可以与一个nxm的矩阵相乘,产生的结果相当于将列向量复制m份作为m列,然后与矩阵的各元素分别相乘,结果仍为nxm阶的矩阵。

所以,对于下面的数组:

>>>M = np.arange(5 * 6).reshape(5, 6) # 一个维数为(5, 6)的矩阵

>>> v5 = np.arange(5) + 10             # 一个长度为5的向量

>>> v51 = v5[:, None]                  # 一个长度为5的列向量

>>> v6 = np.arange(6) - 12             # 一个长度为6的向量

>>> v16 = v6[None, :]                  # 一个长度为5的行向量

将满足下面的等式:

v6 * M == v16 * M == M * v6 == M * v16 == M * v16.repeat(5, 0)

v51 * M == M * v51 == M * v51.repeat(6, 1)

同样的规则也适合于一维数组与二维数组的加减。


评论 / 文明上网理性发言
12条评论
全部评论 / 我的评论
最热 /  最新
全部 3小时前 四川
文字是人类用符号记录表达信息以传之久远的方式和工具。现代文字大多是记录语言的工具。人类往往先有口头的语言后产生书面文字,很多小语种,有语言但没有文字。文字的不同体现了国家和民族的书面表达的方式和思维不同。文字使人类进入有历史记录的文明社会。
点赞12
回复
全部
查看更多评论
相关文章

基础理论丨一文了解XPS(概念、定性定量分析、分析方法、谱线结构)

2020-05-03

手把手教你用ChemDraw 画化学结构式:基础篇

2021-06-19

晶体结构可视化软件 VESTA使用教程(下篇)

2021-01-22

【科研干货】电化学表征:循环伏安法详解(上)

2019-10-25

【科研干货】电化学表征:循环伏安法详解(下)

2019-10-25

Zeta电位的基本理论、测试方法和应用

2020-08-24

项目推荐/Project
第一性原理-反应能垒

第一性原理-反应能垒

第一性原理-原子电荷

第一性原理-原子电荷

第一性原理-吸附能

第一性原理-吸附能

热门文章/popular

基础理论丨一文了解XPS(概念、定性定量分析、分析方法、谱线结构)

手把手教你用ChemDraw 画化学结构式:基础篇

晶体结构可视化软件 VESTA使用教程(下篇)

【科研干货】电化学表征:循环伏安法详解(上)

电化学实验基础之电化学工作站篇 (二)三电极和两电极体系的搭建 和测试

【科研干货】电化学表征:循环伏安法详解(下)

微信扫码分享文章