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 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办