鱼C论坛

 找回密码
 立即注册
查看: 181|回复: 1

argwhere问题

[复制链接]
发表于 2024-5-16 10:18:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大神求助!


import numpy as np
arr = np.array([[1, 0, 0],
            [0, 2, 0],
            [0, 0, 3]])
result = np.argwhere(arr != 0)
print(result)
result2 = np.argwhere(result)[0][0]
print(result2)


为什么result2的输出值是1?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-16 10:18:16 | 显示全部楼层
首先,对于你的代码,其中np.array([, , ])是无法运行的,因为没有提供具体的数组值。

不过,我可以解释为什么result2的输出值是1。

在你的代码中,result是通过np.argwhere(arr != 0)计算得出的。这会返回一个包含非零元素索引的二维数组。例如,如果你的arr数组是[[1, 0, 2], [3, 4, 0]],那么result将是一个包含非零元素索引的数组:[[0, 0], [0, 2], [1, 0], [1, 1]]。

而接下来的np.argwhere(result)则是对result数组再次应用argwhere函数。由于result本身已经是一个包含非零元素索引的二维数组,所以再次调用argwhere函数实际上是在寻找非零元素的索引,结果将是一个长度为1的一维数组[1]。

总之,result2的输出值为1,是因为result数组中只有一个非零元素的索引。

希望能够帮助到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 18:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表