python - 在Python中循环二维数组的最有效方法是什么

标签 python arrays loops multidimensional-array

我是 Python 和机器学习新手。我在互联网上找不到最好的方法。我有一个大的二维数组 (distance_matrix.shape= (47, 1328624))。我写了下面的代码,但运行时间太长。 for循环中的for循环需要很长时间。

distance_matrix = [[0.21218192, 0.12845819, 0.54545613, 0.92464129, 0.12051526, 0.0870853 ], [0.2168166 , 0.11174682, 0.58193855, 0.93949729, 0.08060061, 0.11963891], [0.23996999, 0.17554854, 0.60833433, 0.93914766, 0.11631545, 0.2036373]]
                    
iskeleler = pd.DataFrame({
    'lat':[40.992752,41.083202,41.173462],
    'lon':[29.023165,29.066652,29.088163],
    'name':['Kadıköy','AnadoluHisarı','AnadoluKavağı']
}, dtype=str)

for i in range(len(distance_matrix)):
    for j in range(len(distance_matrix[0])):
        if distance_matrix[i][j] < 1:
            iskeleler.loc[i,'Address'] = distance_matrix[i][j]
        
print(iskeleler)

为了解释一下,我正在共享数组的前 5 行并显示我的数据框。 奥 git _a İskeleler dataframe

“Iskeleler”数据框有 47 行。我想通过查看 distance_matrix 中第 i 行的所有值并添加小于 1 的值,将它们添加到“Iskeleler”中第 i 行的“地址”列。我的意思是,如果我们查看distance_matrix 照片,我想添加诸如 0.21218192 + 0.12845819 + 0.54545613 .... 之类的数字,并将它们放入 ïskeleler 数据帧中第 i 行的“地址”列中。

我的目的是循环遍历distance_matrix并找到一些小于1的值。代码花费的时间太长。我怎样才能以更快的方式做到这一点?

最佳答案

我认为你的意思是:

import numpy as np

# Set up some dummy data in range 0..100
distance = np.random.rand(47,1328624) * 100.0

# Boolean mask of all values < 1
mLessThan1 = distance<1

# Sum elements <1 across rows 
result = np.sum(distance*mLessThan1, axis=1)

在我的 Mac 上这需要 168 毫秒。

In [47]: %timeit res = np.sum(distance*mLessThan1, axis=1)
168 ms ± 914 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

关于python - 在Python中循环二维数组的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67210656/

相关文章:

python - 如何使用功能 API 训练 Keras 模型,该模型具有两个输入和两个输出,并使用两个 ImageDataGenerator 方法 (flow_from_directory)

python - lambda - 无法将 datetime.date 与 int 进行比较

Python - 如何在不一次将整个文件加载到内存的情况下发送带附件的电子邮件?

php - 性能 : SQL Queries vs Server-Side PHP Loops (MYSQL vs PHP)

regex - AS3 : RegExp exec method in loop problem

python - Python 将 UTF 字符从 XML 插入 MySQL 时出现问题

javascript - 将字符串数组转换为数字

c - 通过初始化程序设置结构数组元素的语法?

java - 初始化字符数组时出现精度损失错误

php - 根据 ACF 日期字段值过滤自定义帖子类型