网站地图 关于 合作 招聘 帮助

    热线:400-152-6858

    测试狗科研服务

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

    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
    回复
    全部
    查看更多评论
    相关文章

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

    2021-01-22

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

    2019-10-25

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

    2021-06-19

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

    2019-10-25

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

    2021-01-22

    电化学实验基础之电极基础篇 (四)参比电极的使用和养护

    2020-08-21

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

    第一性原理-反应能垒

    第一性原理-吸附能

    第一性原理-吸附能

    第一性原理-原子电荷

    第一性原理-原子电荷

    热门文章/popular

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

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

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

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

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

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

    微信扫码分享文章

    意见反馈

    有奖举报

    商务合作

    公众号

    关注我们 了解更多

    小程序

    随时预约 掌握进度

    举报有奖

    TEL: 191-3608-6524

    如:在网络上恶意使用“测试狗”等相关关键词误导用户点击、恶意盗用测试狗商标、冒称官方工作人员等情形,请您向我们举报,经查实后,我们将给予您奖励。

    举报内容:

    200

    上传附件:
    文件格式不正确,请重新上传文件格式不正确,请重新上传文件格式不正确,请重新上传
    文件格式:jpg、jpeg、png、gif、tif、doc、docx、ppt、pptx、xls、xlsx、pdf、zip、rar
    联系方式
    姓名
    电话
    提交意见

    意见反馈

    Suggestions

    您可以在此留下您宝贵的意见,您的意见或问题反馈将会成为我们不断改进的动力。

    意见类型
    测试服务
    网站功能
    财务报账
    其他类型
    意见内容

    200

    联系方式
    姓名
    电话
    提交意见

    收起

    Document
    关于我们 新手帮助 测试干货 商务合作 基金查询 相关资质 模拟计算 现场测试 服务项目 科研绘图 同步辐射 全进口设备

    联系方式/contact

    400-152-6858

    工作时间/work time

    09:00-18:00

    测试狗公众号

    关注我们 了解更多

    测试狗小程序

    随时预约 掌握进度

    蜀公网安备51010602000648号

    蜀ICP备17005822号-1

    成都世纪美扬科技有限公司

    Copyright@测试狗·科研服务