Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 代码的运行时间(由于数组大小)是否会太长,从而阻止代码一起启动?_Python_Arrays_Jupyter Notebook_Runtime_Jupyter Lab - Fatal编程技术网

Python 代码的运行时间(由于数组大小)是否会太长,从而阻止代码一起启动?

Python 代码的运行时间(由于数组大小)是否会太长,从而阻止代码一起启动?,python,arrays,jupyter-notebook,runtime,jupyter-lab,Python,Arrays,Jupyter Notebook,Runtime,Jupyter Lab,我在Jupyterlab中使用python 我试图简单地获取一个包含700000个坐标点的数组,然后将它们收集并平均成100nm的正方形 我知道这段代码运行得很好,因为它使用了5000个数组 当我尝试使用较大的数组时,IDE似乎在代码完全执行之前超时。 或者有人能在我的代码中看到一个无限循环来阻止它完成吗 工作代码的前半部分: import matplotlib as plt import numpy as np import pandas as pd xtot = 10.0 ytot = 2

我在Jupyterlab中使用python

我试图简单地获取一个包含700000个坐标点的数组,然后将它们收集并平均成100nm的正方形

我知道这段代码运行得很好,因为它使用了5000个数组

当我尝试使用较大的数组时,IDE似乎在代码完全执行之前超时。 或者有人能在我的代码中看到一个无限循环来阻止它完成吗

工作代码的前半部分:

import matplotlib as plt
import numpy as np
import pandas as pd

xtot = 10.0
ytot = 20.0
xstep = 0.1
ystep = 0.1
x = 0.0
y = 0.0

T = np.array([])
Tygrad = np.array([])

#Convert .txt to .csv

read_file = pd.read_csv (r'/Users/rjordan/Documents/PHD PROJECT/comsol/April 2021 simulations/OOMMF Para to Perp 1 to 4.txt', delim_whitespace=True)
read_file.to_csv (r'/Users/rjordan/Documents/PHD PROJECT/comsol/April 2021 simulations/OOMMF Para to Perp 1 to 4.csv', index=None)

​#read in data file and assign to DataFrame
col_list = ["X", "Y", "Z", "Color"]

df = pd.read_csv("/Users/rjordan/Documents/PHD PROJECT/comsol/April 2021 simulations/OOMMF Para to Perp 1 to 4.csv", usecols=col_list)

n = df.shape[0]
XM = max(df["X"])
YM = max(df["Y"])
TM = max(df["Color"])

print(XM)
print(YM)
print(TM)
print(n)
print()

10.000000000000002
20.000000000000004
393.02205716505614
713457
代码的后半部分实际上永远不会吐出任何东西(我对5000数组的估计是它需要7小时才能完成):

而x
为什么,为什么,为什么?!?!你是这样做的吗?您必须执行
xtot*ytot*n
操作。请把这个换成:1。准备您的
xtot*ytot
输出(甚至可能只是一个查看代码的
xtot
长列表)。然后在
df
上进行一次迭代,计算要更新的数据(比如
floor(df[“X”][i]/xstep)
)。从
xtot*ytot*n
移动到
xtot*ytot+n
将是一个巨大的改进。@Faboor我的意思是,这个操作实际上只是一个除法,我不认为会有那么大的不同。当然,你的意思是,如果基本上保持相同的代码,但将所有不同的N加在一起形成一个数组,那么我可以在一次大的飞跃中将整个数组的T除以N?哦,等等,我明白你的意思了
while x < xtot:
    x += xstep
    y = 0.0 
    while y < ytot:
        Tot = 0.0
        N = 0.0
        y += ystep
        for i in range(n):
            if df["X"][i] <= x and df["X"][i] >= (x-xstep) and df["Y"][i] <= y and df["Y"][i] >= (y-ystep):
                Tot += df["Color"][i]
                N += 1 
        Tsq = Tot/N
        T = np.append(T, Tsq)
Tx = int(xtot/xstep)
Ty = int(ytot/ystep)
To = T.reshape(Tx,Ty)               
Tn = T.shape
Ton = To.shape
Tm = max(T)
print(Tm)
print(Tn)
print(Ton)
print(T)
print(To)