我有这个代码:

from collections import Counter
import numpy as np

def make_data(N):
    np.random.seed(40)
    g = np.random.randint(-3, 4, (N, N))
    return g


N = 100
g = make_data(N)
n = g.shape[0]

sum_dist = Counter()
for i in range(n):
    for j in range(n):
        dist = i**2 + j**2
        sum_dist[dist] += g[i, j]

sorted_dists = sorted(sum_dist.keys())
for i in range(1, len(sorted_dists)):
    sum_dist[sorted_dists[i]] += sum_dist[sorted_dists[i-1]]

# print(sum_dist)
print(max(sum_dist, key=sum_dist.get))

输出为7921.

我想把它转换成麻木的唯一代码,并摆脱计数器.我怎么能做到这一点?

推荐答案

既然你知道它的最大索引,你能把sum_dist变成一个数组吗?

sum_dist = np.zeros(2 * N * N, dtype=int)
for i in range(n):
    for j in range(n):
        dist = i**2 + j**2
        sum_dist[dist] += g[i, j]

print(np.argmax(np.cumsum(sum_dist)))

Python相关问答推荐

如何以实现以下所述的预期行为的方式添加两只Pandas pyramme

在Python中根据id填写年份系列

Tkinter -控制调色板的位置

从管道将Python应用程序部署到Azure Web应用程序,不包括需求包

具有症状的分段函数:如何仅针对某些输入值定义函数?

如何让 turtle 通过点击和拖动来绘制?

如果条件为真,则Groupby.mean()

DataFrame groupby函数从列返回数组而不是值

'discord.ext. commanders.cog没有属性监听器'

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

输出中带有南的亚麻神经网络

无法通过python-jira访问jira工作日志(log)中的 comments

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

在ubuntu上安装dlib时出错

如何在表中添加重复的列?

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

在两极中过滤

Pandas Data Wrangling/Dataframe Assignment

Python避免mypy在相互引用中从另一个类重定义类时失败

使用__json__的 pyramid 在客户端返回意外格式