条件输出解释的numpy

时间:2018-04-19 23:15:11

标签: numpy

我试图理解numpy where condition。

>>> import numpy as np
>>> x = np.arange(9.).reshape(3, 3)
>>> x
array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.],
       [ 6.,  7.,  8.]])
>>> np.where( x > 5 )
(array([2, 2, 2]), array([0, 1, 2]))

在上面的例子中,输出实际意味着什么,数组([0,1,2])我实际上在输入中看到什么是数组([2,2,2])

3 个答案:

答案 0 :(得分:2)

第一个数组表示行号,第二个数组表示相应的列号。

如果array如下:

array([[ 0.,  1.,  2.],
   [ 3.,  4.,  5.],
   [ 6.,  7.,  8.]])

然后是以下

(array([2, 2, 2]), array([0, 1, 2]))

可以解释为

array(2,0) => 6
array(2,1)  => 7
array (2,2) => 8

答案 1 :(得分:0)

找到三个元素,位于(2,0),(2,1),(2,2)..

顺便说一下,试试series: [{ type: 'candlestick', name: 'AAPL Stock Price', data: [{ time: 0, high: 100, low: 50, open: 60, close: 80, dataLabels: { borderRadius: 0, backgroundColor: 'green', borderWidth: 4, borderColor: 'black' } }, { time: 1, high: 90, low: 50, open: 80, close: 70 }, { time: 2, high: 80, low: 10, open: 40, close: 60 }, { time: 3, high: 80, low: 10, open: 60, close: 40 }, ], }] 会对你有所帮助。

答案 2 :(得分:0)

您可能还想知道这些值在数组中以何种方式显示。在这种情况下,您可以返回条件为True的数组值和空值为false的值。在下面的示例中,x的值在x> 5的位置返回,否则指定-1。

x = np.arange(9.).reshape(3, 3)
np.where(x>5, x, -1)
array([[-1., -1., -1.],
       [-1., -1., -1.],
       [ 6.,  7.,  8.]])