加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – numpy.where返回一个元组的目的是什么?

发布时间:2020-12-20 11:05:18 所属栏目:Python 来源:网络整理
导读:当我运行此代码时: import numpy as npa = np.array([1,2,3,4,5,6])print(np.where(a 2)) 获得一个指数数组是很自然的,其中一个 2,即[2,5],但我们得到: (array([2,dtype=int64),) 即一个空的第二个成员的元组. 然后,为了获得numpy.where的“自然”答案,我
当我运行此代码时:

import numpy as np
a = np.array([1,2,3,4,5,6])
print(np.where(a > 2))

获得一个指数数组是很自然的,其中一个> 2,即[2,5],但我们得到:

(array([2,dtype=int64),)

即一个空的第二个成员的元组.

然后,为了获得numpy.where的“自然”答案,我们必须这样做:

np.where(a > 2)[0]

这个元组有什么意义?它在哪种情况下有用?

注意:我在这里只是谈论用例numpy.where(cond)而不是numpy.where(cond,x,y)也存在(参见文档).

解决方法

numpy.where返回一个元组,因为元组的每个元素都引用一个维度.

在2个维度中考虑此示例:

a = np.array([[1,6],[-2,1,5]])

print(np.where(a > 2))

(array([0,1],array([2,dtype=int64))

如您所见,元组的第一个元素是指相关元素的第一维;第二个元素指的是第二个维度.

这是一个经常使用的常规numpy.当你要求数组的形状时,你也会看到它,即一维数组的形状将返回一个带有1个元素的元组:

a = np.array([[1,5]])

print(a.shape,a.ndim)  # (2,6) 2

b = np.array([1,6])

print(b.shape,b.ndim)  # (6,) 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读