小编Ale*_*all的帖子

一个长期的难题,如何优化python中的多级循环?

我在python中编写了一个函数来计算高斯展宽中的Delta函数,它涉及4级循环.但是,效率非常低,比以类似方式使用Fortran慢约10倍.

def Delta_Gaussf(Nw, N_bd, N_kp, hw, eigv):
    Delta_Gauss = np.zeros((Nw,N_kp,N_bd,N_bd),dtype=float)
    for w1 in range(Nw):
        for k1 in range(N_kp):
            for i1 in range(N_bd):
                for j1 in range(N_bd):
                    if ( j1 >= i1 ):
                        Delta_Gauss[w1][k1][i1][j1] = np.exp(pow((eigv[k1][j1]-eigv[k1][i1]-hw[w1])/width,2))
    return Delta_Gauss
Run Code Online (Sandbox Code Playgroud)

我删除了一些常量,使它看起来更简单.

任何人都可以帮我优化这个脚本以提高效率吗?

python numpy

3
推荐指数
2
解决办法
285
查看次数

尽管使用间隔连接,但“行时间属性不得位于常规连接的输入行中”,但仅限于事件时间戳

示例代码:

from pyflink.table import EnvironmentSettings, StreamTableEnvironment


env_settings = (
    EnvironmentSettings.new_instance().in_streaming_mode().use_blink_planner().build()
)
table_env = StreamTableEnvironment.create(environment_settings=env_settings)

table_env.execute_sql(
    """
    CREATE TABLE table1 (
        id INT,
        ts TIMESTAMP(3),
        WATERMARK FOR ts AS ts - INTERVAL '5' SECOND
    ) WITH (
        'connector.type' = 'filesystem',
        'format.type' = 'csv',
        'connector.path' = '/home/alex/work/test-flink/data1.csv'
    )
"""
)


table_env.execute_sql(
    """
    CREATE TABLE table2 (
        id2 INT,
        ts2 TIMESTAMP(3),
        WATERMARK FOR ts2 AS ts2 - INTERVAL '5' SECOND
    ) WITH (
        'connector.type' = 'filesystem',
        'format.type' = 'csv',
        'connector.path' = '/home/alex/work/test-flink/data2.csv'
    ) …
Run Code Online (Sandbox Code Playgroud)

python join apache-flink flink-streaming flink-sql

3
推荐指数
1
解决办法
1361
查看次数

如何在python中正确使用打印和随机睡眠

我是新手,我一直在尝试构建一个随机倒数计时器,它选择0到10之间的数字,并从所选整数计数到零.同时打印倒计时.但是,我一直从睡眠中得到错误().

import random
import time

x = random.randint(0,10)

y = time.sleep(x)

while y != 0:
    print(y)
Run Code Online (Sandbox Code Playgroud)

python random counter sleep nonetype

0
推荐指数
1
解决办法
550
查看次数

执行“尝试...除外...”的功能

我想将“尝试...除外...”放入一个函数中,以便我的代码更短,因为它被多次使用。

使这项工作:

def whiletry(x):
    while 1:
        try:
            x
            break
        except:
            time.sleep(0.25)

whiletry(driver.find_element_by_xpath('//*[@id="j_list_card"]/ul/li/h3/a').click())
Run Code Online (Sandbox Code Playgroud)

python selenium python-3.x

0
推荐指数
1
解决办法
69
查看次数