【问题标题】:how can i make np.argmin code without numpy?我如何在没有 numpy 的情况下制作 np.argmin 代码?
【发布时间】:2022-06-26 11:30:45
【问题描述】:

我面临着在没有 numpy 的情况下编写 np.argmin 的挑战。

我已经苦苦思考了大约一天.. 我不知道是否应该使用 for 语句,

if 语句、while 语句或其他函数..


第一个问题!

首先,我想到了如何用不等号来表示,以区分大小写。

使用 if 语句

a[0,0] - a[0,1] > 0

a[0,0] - a[0,1]

我试着把这两种情况分开来写代码。

案例太多,所以我停了。

难道不能用 If 语句来完成吗?


第二个问题!

我们知道argmin方法将指针的地址表示为一个数组值。

截屏中的内容是我任意输入的二维列表。

ndarray.

因为任务仅限于接收二维列表作为输入

我以为axis=0和axis=1的方向是固定的。

然后axis=0冻结列并逐行比较

可以认为axis=1 冻结行并将列与列进行比较吗?


第三个问题!

接收到任意二维列表后,ndarray为

我认为它会是 ixj 形式的矩阵形式。

那么,如果使用a.shape,则输出值输出为(i , j)。

我们如何在这里提取 i 和 j?


整天想着真的很难。 任何提示将不胜感激。

【问题讨论】:

  • 任何时候你都可以使用enumerate 来获取索引。 min 适用于列表。列表也有一个index(或者是find)方法。
  • 坚持一次问1个问题。您可以提出单独的问题,以免被标记为需要更多关注。

标签: python numpy


【解决方案1】:
def argmin(a):
    return min(range(len(a)), key=lambda x : a[x])
def argmax(a):
    return max(range(len(a)), key=lambda x : a[x])

此代码用于一维列表。

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多