np.where 与 np.argwhere 的区别
  X5zJxoD00Cah 2023年11月02日 41 0

np.wherenp.argwhere 都是 NumPy 库中用于查找满足条件的元素索引位置的函数,但它们之间有一些区别:

  1. np.where
  • 返回满足条件的元素的坐标(行和列)的元组或者是一个包含行坐标和列坐标的 NumPy 数组。
  • 如果被调用时只有一个条件参数,它返回一个包含满足条件的元素的坐标的元组 (row_indices, column_indices)
  • 如果被调用时有多个条件参数,它返回一个包含满足所有条件的元素的坐标的元组 (row_indices, column_indices)

示例:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

indices = np.where(arr > 3)
print(indices)
# 输出:(array([1, 1, 2, 2, 2]), array([0, 1, 0, 1, 2]))
  1. np.argwhere
  • 返回一个包含满足条件的元素的索引的 NumPy 数组。
  • 无论是否有多个条件参数,它始终返回一个包含满足条件的元素的索引的二维 NumPy 数组,其中每一行都代表一个满足条件的元素的索引,每一列代表一个维度的索引。

示例:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

indices = np.argwhere(arr > 3)
print(indices)
# 输出:[[1 0]
#      [1 1]
#      [2 0]
#      [2 1]
#      [2 2]]

总结:np.where 返回坐标元组或坐标数组,而 np.argwhere 始终返回索引数组。选择使用哪个函数取决于你的需求和对结果的期望格式。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zLxnEsMLk4BL   2023年11月19日   39   0   0 数组字符串数组名
  gBkHYLY8jvYd   2023年11月19日   27   0   0 #include数组ci
  X5zJxoD00Cah   2023年11月19日   31   0   0 数组单引号字符串
  gBkHYLY8jvYd   2023年12月10日   24   0   0 #include数组i++
X5zJxoD00Cah