我一直在研究这个函数,它生成了我正在开发的模拟代码所需的一些参数,并且已经在增强其性能方面遇到了障碍.

对代码进行分析表明,这是主要的瓶颈,因此我可以对其进行的任何增强都会很小.

我想尝试对这个函数的部分进行矢量化,但我不确定它是否可行.

主要的挑战是存储在我的数组参数中的参数取决于参数的索引.我看到的唯一直接的解决方案是使用np.ndenumerate,但这看起来很慢.

是否可以对这种类型的操作进行矢量化,其中存储在数组中的值取决于它们存储的位置?或者创建一个只给我数组索引的元组的生成器会更聪明/更快?

import numpy as np

from scipy.sparse import linalg as LA

def get_params(num_bonds,energies):

"""

Returns the interaction parameters of different pairs of atoms.

Parameters

----------

num_bonds : ndarray,shape = (M,20)

Sparse array containing the number of nearest neighbor bonds for

different pairs of atoms (denoted by their column) and next-

nearest neighbor bonds. Columns 0-9 contain nearest neighbors,10-19 contain next-nearest neighbors

energies : ndarray,)

Energy vector corresponding to each atomic system stored in each

row of num_bonds.

"""

# -- Compute the bond energies

x = LA.lsqr(num_bonds,energies,show=False)[0]

params = np.zeros([4,4,4])

nn = {(0,0): x[0],(1,1): x[1],(2,2): x[2],(3,3): x[3],(0,1): x[4],0): x[4],2): x[5],0): x[5],3): x[6],0): x[6],2): x[7],1): x[7],3): x[8],1): x[8],3): x[9],2): x[9]}

nnn = {(0,0): x[10],1): x[11],2): x[12],3): x[13],1): x[14],0): x[14],2): x[15],0): x[15],3): x[16],0): x[16],2): x[17],1): x[17],3): x[18],1): x[18],3): x[19],2): x[19]}

"""

params contains the energy contribution of each site due to its

local environment. The shape is given by the number of possible atom

types and the number of sites in the lattice.

"""

for (i,j,k,l,m,jj,kk,ll,mm),val in np.ndenumerate(params):

params[i,mm] = nn[(i,j)] + nn[(i,k)] + nn[(i,l)] + \

nn[(i,m)] + nnn[(i,jj)] + \

nnn[(i,kk)] + nnn[(i,ll)] + nnn[(i,mm)]

return np.ascontiguousarray(params)

python把文字矢量化_这个python函数可以被矢量化吗?相关推荐

  1. python把文字矢量化_如何将点阵汉字矢量化 | indienova

    那么是不是点阵汉字就已经退出历史舞台了呢?并没有.现在街上能常常见到的简易 LED 屏,很多都还是用的点阵汉字.很多工控或者简易屏幕上,也都还在使用点阵汉字,这是因为同矢量字体相比,点阵汉字占用的空间 ...

  2. python数据统计 矢量图_用python中的矢量化解决方案计算max draw down

    Maximum Drawdown是量化金融中常用的一种风险度量,用于评估所经历的最大负收益. 最近,我变得不耐烦的时间来计算最大下降使用我的循环方法.def max_dd_loop(returns): ...

  3. python图像识别生成矢量图_使用python制作矢量图

    Get一个使用python制作矢量图的新技能: 前言: Matplotlib远比我们想象的强大,而这只是众多python强大的包中的一个,不愧是群英荟萃. 绘图后端我们一般是看不见的,matplotl ...

  4. python实现文字转语音_利用python实现自己的文本转语音

    1.安装python3.8.5 python   >>  downloads   >>   windows    >>  Windows x86-64 execut ...

  5. python输入文字垂直输出_在python中如何将横向输入的中文竖直输出

    s.strip('.').split(',') 去掉最后的句号,然后以逗号为分隔符,把句子分开,存到一个list当中.执行完成后, lines=['白日依山尽', '黄河入海流', '欲穷千里目', ...

  6. python图片矢量化_图像处理tas的Python矢量化

    我在用python3(这个特定任务的NumPy)自学彩色图像处理.在 我有一个3d张量,代表图像中每个像素的RGB值,所以它的形状是(高,宽,3).在每个像素处,我要生成新的RGB值,这些值是给定像素 ...

  7. Python中将数据矢量化运算所带来的时间加快

    ➤01 矢量化运算 在<PaddlePaddle深度学习实战>一书中,介绍了在Python中利用Numpy中的矩阵(矢量)运算所带来的速度增加. ▲ PaddlePaddle深度学习实战 ...

  8. python音频转文字腾讯_使用Python三步完成文本到语音的转换

    重磅干货,第一时间送达 一篇文章带你了解文本到语音转换步骤 在<这篇文章>中,我们有简单提到"文本语音转换"的相关内容,本文将继续讲述其详细实现步骤. 这里小编将介绍文 ...

  9. python保存图片到指定路径_用 Python 识别图片中的文字

    (给Python开发者加星标,提升Python技能) 来源:ZackSock 一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度 ...

最新文章

  1. 60-200-040-使用-命令-MySQL查看引擎的命令
  2. 企业管理软件解决方案 出售 :针对华东区中小企业订单仓储管理流程
  3. (九)ubuntu解决resolv.conf被重写问题
  4. java 清单文件 生成,使用批处理文件生成文件列表清单
  5. 从北京77元房租,说说关于房子的事
  6. 图片懒加载、ajax异步调用数据、lazyload插件的使用
  7. 关于如何修改CSDN中的字体大小和颜色
  8. git临时保存git stash命令
  9. 【luogu P2319 [HNOI2006]超级英雄】 题解
  10. dinic算法 java_网络流问题(Dinic算法JAVA实现)
  11. 成都盛铭轩:详情页怎么设计
  12. android 播放器封装,Android 播放器二次封装与实现
  13. 统一检测和分割任务!港科大清华IDEA提出基于Transformer统一目标检测与分割框架Mask DINO,效果SOTA!...
  14. 移动App云测试平台
  15. 股价上涨,资金流出以及内外盘的关系
  16. 计算机服务器排名,2019服务器CPU天梯图 多路CPU性能排名
  17. 中文命名实体识别NER
  18. 文字发光_青岛发光字制作有哪些?迷你字吸塑发光字树脂发光字冲孔字精工字...
  19. C# Echarts 折线图 实例
  20. 国家互联网信息办公室:发布关于《区块链信息服务管理规定(征求意见稿)》

热门文章

  1. centos中的mysql安装配置,Linux下安装配置MySQL
  2. linux history(命令历史)
  3. linux ip rcv处理,linux ip选项处理(二)
  4. Python常用函数与技巧总结(三)
  5. 多目标检测跟踪文献代码汇总
  6. Python-anaconda-Spyder使用matplotlib画图无法显示报错解决:Figures now render in the Plots pane by default. To mak
  7. java 随机生成常用汉字_Java随机生成中文汉字
  8. ios键盘done中文_关于IOS键盘的一些调用心得与坑
  9. java计算程序运行时间_C#里面的时间,如何计算一个程序运行花费的时间
  10. 小松卡特彼勒无人驾驶_运输量突破20亿吨,卡特彼勒无人驾驶矿卡迎里程碑时刻...