numpy.where()用法
numpy.where()
有兩種用法:
- np.where(condition, x, y)
滿足條件(condition),輸出x,不滿足輸出y。
如果是一維陣列,相當於[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
如果是一維陣列,相當於[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
>>> aa = np.arange(10)
>>> np.where(aa,1,-1)
array([-1, 1, 1, 1, 1, 1 , 1, 1, 1, 1]) # 0為False,所以第一個輸出-1
>>> np.where(aa > 5,1,-1)
array([-1, -1, -1, -1, -1, -1, 1, 1, 1, 1])
>>> np.where([[True,False], [True,True]], # 官網上的例子
[[1,2], [3,4]],
[[9,8], [7,6]])
array([[1, 8],
[3, 4]])
上面這個例子的條件為[[True,False], [True,False]]
[1,9]
中選,因為條件為True,所以是選1。第二個值從[2,8]
中選,因為條件為False
,所以選8,後面以此類推。類似的問題可以再看個例子:
>>> a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
[["chosen","not chosen"], ["chosen","not chosen"]],
[["not chosen","chosen"], ["not chosen","chosen"]] )
array([['chosen', 'chosen'],
['chosen', 'chosen']], dtype='<U10')
2. np.where(condition)
只有條件 (condition),沒有x和y,則輸出滿足條件 (即非0) 元素的座標 (等價於numpy.nonzero
)。這裡的座標以tuple
的形式給出,通常原陣列有多少維,輸出的tuple
中就包含幾個陣列,分別對應符合條件元素的各維座標。
>>> a = np.array([2,4,6,8,10])
>>> np.where(a > 5) # 返回索引
(array([2, 3, 4]),)
>>> a[np.where(a > 5)] # 等價於 a[a>5]
array([ 6, 8, 10])
>>> np.where([[0, 1], [1, 0]])
(array([0, 1]), array([1, 0]))
上面這個例子條件中[[0,1],[1,0]]
的真值為兩個1,各自的第一維座標為[0,1]
,第二維座標為[1,0]
。
下面看個複雜點的例子:
>>> 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]))#對應的座標(0,2,0),(0,2,1),...
# 符合條件的元素為
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]]
所以np.where
會輸出每個元素的對應的座標,因為原陣列有三維,所以tuple
中有三個陣列
相關推薦
Python numpy where 用法
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.where.html https://www.cnblogs.com/massquantity/p/8908859.html numpy.
numpy.where() 用法詳解
1. np.where(condition, x, y) 滿足條件(condition),輸出x,不滿足輸出y。 >>> aa = np.arange(10) >>> np.where(aa,1,-1) array([-1,
numpy.where()用法
numpy.where() 有兩種用法: np.where(condition, x, y) 滿足條件(condition),輸出x,不滿足輸出y。 如果是一維陣列,相當於[xv if c else yv for (c,xv,yv) in zip(
python numpy.where()函式的用法
numpy.where(condition[,x,y]) 返回元素,可以是x或y,具體取決於條件(condition) 對於不同的輸入,where返回的值是不同的。 引數: ccondition:array_llike,bool 如果為True,則
numpy中的where用法
numpy.where函式是三元表示式x if condition else y的向量化版本。定義一個布林陣列和兩個值陣列: >>> xarr=np.array([1.1,1.2,1
numpy簡單用法2
display sort BE one pan view IE AR arr a = np.arange(12) b = a print (b is a) b.shape = 3,4 print (a.shape) print (id(a)) print (id(b))
numpy where()函式
原文連結:https://blog.csdn.net/qq_32005671/article/details/74011993 numpy.where()函式是三元表示式x if condition else y的向量化版本。假設我們有一個布林陣列和兩個值陣列: x = np.array([
Python numpy.reshape用法
numpy.reshape(a, newshape, order='C') 這個函式的作用就是把資料原來的尺寸更改為我們想要的尺寸。 引數: a: array_like 我們想要的變更尺寸的陣列。 newshape: int or int of ints 想變成什麼樣
python numpy基本用法
1.陣列用法 list_1 = [1,2,3,4] array_1 = np.array(list_1) 這樣就可以對array_1進行計算了。 獲得二維陣列 array_3 = np.array([list_1,list_2]) 獲得陣列的型別 array_3.dtype
numpy陣列用法大全
機器學習的最基礎模組就是numpy模組了,而numpy模組中的陣列操作又是重中之重,所以我們要把陣列的各種方法弄得明明白白的,以下就是陣列的一些常用方法 1.建立各種各樣的陣列: import numpy as np import matplotlib.pyplot as plt print(np
tf.where()用法
找出tensor裡所有True值的index import tensorflow as tf a = tf.constant([False,False,True,False,True],dtype=tf.bool) b = tf.where(tf.equal(a,True)) s
模組numpy的用法
https://blog.csdn.net/qq351469076/article/details/78817378 機器學習三劍客之Numpy: https://www.jianshu.com/p/83c8ef18a1e8 Numpy np.array 相關常用操作學習筆記: htt
numpy.where
numpy.where有兩種用法, 1. np.where(condition, x, y) 如果condition是一維陣列,相當於[xv if c else yv for (c,xv,yv) in zip(condition,x,y)] 如果condition是高維陣列,同樣是把x和
numpy.ones用法
例項:1.>>np.ones(5) array([ 1., 1., 1., 1., 1.]) 2. >> np.ones((5,), dtype=int) array([1, 1, 1, 1, 1]) 3.>> np.ones((2, 1)
Python的Numpy基本用法-01
一些numpy裡面的基本方法 import numpy as np ar = np.array([[1,2,3,4,5,6],[2,3,4,5,6,7],[3,4,5,6,7,8]]) #建立一個二維陣列 ar1 = np.arange(10) #建立一個0--10的一維陣列 ar2
Numpy常用用法
生成10個2的冪次方倍的數: np.logspace(0,9,base = 2):[1. 2. 4. 8. 16. 32. 64. 128. 256. 512.] 獲取當前時間:time.clock() 生成隨機數的種子:np.random.seed(0) impo
numpy.reshape用法
numpy.reshape(a, newshape, order='C') 這個函式的作用就是把資料原來的尺寸更改為我們想要的尺寸。 引數: a: array_like 我們想要的變更尺寸的陣列。 newshape: int or int of ints 想
np.where()用法總結
用法一:可以返回一個n維陣列,可廣播。# np.where(condition, x, y)# condition, x, y, return are all can be #ndarray x = np.random.randn((4, 4)) np.where(x>
numpy常用用法總結
目錄 使用 基本操作 陣列與標量、陣列之間的運算 陣列的 矩陣積 布林索引 科學計算庫,新的資料結構ndarry,多維陣列物件,處理後交給pandas進一步處理 使用 import numpy as np; arr=np.array([[1,
numpy基本用法
對於python中的numpy模組,一般用其提供的ndarray物件。 建立一個ndarray物件很簡單,只要將一個list作為引數即可。 例如 import numpy as np #引入numpy庫 #建立一維的narray物件 a = np.array(