import numpy as np

solution_point_count = 150
impedance_datapoint_count = 134 

impedance_frequency = np.logspace(np.log10(100000), np.log10(0.0199), impedance_datapoint_count)
solution_frequency_logspace = np.logspace(np.log10(100000), np.log10(0.06), solution_point_count)
    
# Initializing zeros matrix to store results     
Z_RC = np.zeros((impedance_datapoint_count,solution_point_count))

#Constructing Debye Model for RC Kernel
#Debye Model: Z_RC = 1/(1 + iω*𝜏) where ω = 2πf and 𝜏 = RC = 1/(2πf)

for n in range(solution_point_count):
    for m in range(impedance_datapoint_count):
        Equation = 1/(1+1j*impedance frequency[m]/solution_frequency_logspace[n])
            Z_RC[m,n] = np.real(Equation) # Extracting real part only

虽然这可以创建内核Z_RC,但它非常慢,而且可能效率低下.有没有更有效的方法来做到这一点?也许是矢量化?

推荐答案

for n in range(solution_point_count):
    for m in range(impedance_datapoint_count):
        Equation = 1/(1+1j*impedance frequency[m]/solution_frequency_logspace[n])
            Z_RC[m,n] = np.real(Equation) # Extracting real part only

应该是可用‘广播’数组计算的.如果不做测试,我会建议

Z_RC = (1 / (1 +1j * impedance_frequency[:,None] / 
    solution_frequency_logspace)).real

这将(m,1)数组除以a(n,),得到a(m,n)

Python-3.x相关问答推荐

如何在Python Matplotlib中在x轴上放置点

如何使用Python将嵌套的XML转换为CSV

如何从选定的html内容中获取所需的文本

不同的焦点顺序和堆叠顺序 tkinter

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

如何立即从asyncio.Task获取异常?

从 https://www.niftytrader.in/stock-options-chart/sbin 提取 SBIN 股票最大痛苦值的 Python 代码不起作用 - 我错过了什么?

三重奏:为什么频道被记录为使用async with,而不是with?

平移数组

使用 Python 在特定组的列中设置上限

通过匹配第一列的行值,逐个单元格地添加两个Pandas 数据框中的浮点数

为什么 mypy 不适用于 sqlalchemy?

过滤查询集和Q运算符的不同值

Pytorch 的随机 Select ?

使用 Sympy 方程进行绘图

django - 值更改后自动更新日期

如何配置 Atom 以运行 Python3 脚本?

try 在 Windows 10 高 DPI 显示器上解决模糊的 tkinter 文本 + zoom ,但担心我的方法不是 Pythonic 或不安全

对字节进行按位运算

如何强制 Sphinx 使用 Python 3.x 解释器