jaffe—fly 2019-09-12 16:33 采纳率: 0%
浏览 1143
已采纳

np.where这个函数不太理解

aa = np.arange(10)
np.where(aa,1,-1)
array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0为False,所以第一个输出-1

疑问1,where函数的第一个参数为条件,把序列当成条件是什么意思?条件不是大于小于等这一类的吗?总之结果怎么来的

np.where([[True,False], [True,True]],

[[1,2], [3,4]],
[[9,8], [7,6]])
array([[1, 8],
[3, 4]])

疑问2,[[True,False], [True,True]]为条件,满足条件输出 [[1,2], [3,4]],不满足输出 [[9,8], [7,6]]。(where函数的用法是这样的),结果是怎么来的

np.where([[0, 1], [1, 0]])
(array([0, 1]), array([1, 0]))
上面这个例子条件中[[0,1],[1,0]]的真值为两个1,各自的第一维坐标为[0,1],第二维坐标为[1,0] 。

疑问3,这个结果和解释到底怎么来的

a = np.arange(27).reshape(3,3,3)
a
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],

   [[ 9, 10, 11],
    [12, 13, 14],
    [15, 16, 17]],

   [[18, 19, 20],
    [21, 22, 23],
    [24, 25, 26]]])

np.where(a > 5)
(array([0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2]),
array([2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2]),
array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]))

疑问4 这个结果得到的索引值也是完全看不懂

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-09-13 00:01
    关注

    https://www.cnblogs.com/massquantity/p/8908859.html

    aa = np.arange(10)
    np.where(aa,1,-1)
    相当于
    aa = np.arange(10)
    np.where(aa != 0,1,-1)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题
  • ¥15 有没有人能解决下这个问题吗,本人不会编程
  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥20 能提供一下思路或者代码吗