【问题标题】:Faster list manipulation更快的列表操作
【发布时间】:2022-11-24 05:07:29
【问题描述】:

我有一个大的 numpy 数组 whNumPylements 我想单独与其他索引相乘然后求和。我当前的代码相对较慢,有没有人知道如何让它更快:

result = 0
n = 1
int_array = np.array((3,16,3,29,36))
for i in int_array:
    result += int(i) * n
    n *= 10

【问题讨论】:

  • 0 * 10 始终为 0!!!!
  • ups 抱歉更新为 n= 1
  • 你确定n*=10吗? n 将很快变得巨大。除了失去精度的严重问题。

标签: python numpy


【解决方案1】:

我想我已经明白你想逐步将数组的每个数字乘以n,而n将在每个循环中乘以 10。那是你想做的吗,我认为没有什么可做的。唯一的问题是您不需要将 i 转换为 int,因为 i 已经是一个

【讨论】:

    【解决方案2】:

    尝试这个:

    res = (np.power(10, np.arange(int_array.shape[0])) * int_array).sum()
    
    print(res)
    

    输出:

    389463
    

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 2016-02-21
      • 2016-04-10
      • 2012-08-16
      • 2021-03-09
      • 2014-07-06
      • 2017-10-19
      • 2021-09-20
      相关资源
      最近更新 更多