返回輸入數(shù)組中每個值所屬的容器的索引。
numpy.digitize(x, bins, right=False)[source]
bin:容器的數(shù)組。
right:表示該間隔是否包括右邊或左邊的bin。
a = np.array([-0.9, 0.5, 0.9, 1, 1.2, 1.4, 3.6, 4.7, 5.3])
bins = np.array([0,1,2,3])
np.digitize(a,bins)
-------------------------------
array([0, 1, 1, 2, 2, 2, 4, 4, 4], dtype=int64)
Exp Value
x < 0 : 0
0 <= x <1 : 1
1 <= x <2 : 2
2 <= x <3 : 3
3 <=x : 4
Compares -0.9 to 0, here x < 0 so Put 0 in resulting array.
Compares 0.5 to 0, here 0 <= x <1 so Put 1.
Compares 5.4 to 4, here 3<=x so Put 4
它是NumPy中最常用的函數(shù)之一。它返回一個數(shù)組,其中包含具有新形狀的相同數(shù)據(jù)。微信搜索公眾號:架構(gòu)師指南,回復(fù):架構(gòu)師 領(lǐng)取資料 。
numpy.reshape(shap)
A = np.random.randint(15,size=(4,3))
A
----------------------
array([[ 8, 14, 1],
[ 8, 11, 4],
[ 9, 4, 1],
[13, 13, 11]])
A.reshape(3,4)
-----------------
array([[ 8, 14, 1, 8],
[11, 4, 9, 4],
[ 1, 13, 13, 11]])
A.reshape(-1)
-------------------
array([ 8, 14, 1, 8, 11, 4, 9, 4, 1, 13, 13, 11])
它用于擴(kuò)展數(shù)組的維度。
numpy.expand_dims(a, axis)
arr = np.array([ 8, 14, 1, 8, 11, 4, 9, 4, 1, 13, 13, 11])
np.expand_dims(A,axis=0)
-------------------------
array([[ 8, 14, 1, 8, 11, 4, 9, 4, 1, 13, 13, 11]])
np.expand_dims(A,axis=1)
---------------------------
array([[ 8],
[14],
[ 1],
[ 8],
[11],
[ 4],
[ 9],
[ 4],
[ 1],
[13],
[13],
[11]])
通過移除一個單一維度來降低數(shù)組的維度。
np.squeeze(a, axis=None)
arr = np.array([[ 8],[14],[ 1],[ 8],[11],[ 4],[ 9],[ 4],[ 1],[13],[13],[11]])
np.squeeze(arr)
---------------------------
array([ 8, 14, 1, 8, 11, 4, 9, 4, 1, 13, 13, 11])
計(jì)算所有非零元素并返回它們的計(jì)數(shù)。
numpy.count_nonzero(a, axis=None, *, keepdims=False)
a = np.array([0,0,1,1,1,0])
np.count_nonzero(a)
--------------------------
3
查找并返回非零元素的所有下標(biāo)。
numpy.argwhere(a)
a = np.array([0,0,1,1,1,0])
np.argwhere(a)
---------------------
array([[2],[3],[4]], dtype=int64)
argmax返回?cái)?shù)組中Max元素的索引。它可以用于多類圖像分類問題中獲得高概率預(yù)測標(biāo)簽的指標(biāo)。
numpy.argmax(a, axis=None, out=None, *, keepdims=<no value>)
arr = np.array([[0.12,0.64,0.19,0.05]])
np.argmax(arr)
---------
1
argmin將返回?cái)?shù)組中min元素的索引。
numpy.argmin(a, axis=None, out=None, *, keepdims=<no value>)
np.argmin(min)
------
3
對數(shù)組排序。
numpy.sort(a, axis=- 1, kind=None, order=None)
kind:要使用的排序算法。{'quicksort’, 'mergesort’,
arr = np.array([2,3,1,7,4,5])
np.sort(arr)
----------------
array([1, 2, 3, 4, 5, 7])
numpy.absolute(x, /, out=None, *,
where=True, casting='same_kind',
order='K', dtype=None,
subok=True[, signature, extobj]) = <ufunc 'absolute'>
返回?cái)?shù)組中元素的絕對值。當(dāng)數(shù)組中包含負(fù)數(shù)時,它很有用。
A = np.array([[1,-3,4],[-2,-4,3]])np.abs(A)
---------------
array([[1, 3, 4],
[2, 4, 3]])
將浮點(diǎn)值四舍五入到指定數(shù)目的小數(shù)點(diǎn)。
numpy.around(a, decimals=0, out=None)
decimals:要保留的小數(shù)點(diǎn)的個數(shù)。
a = np.random.random(size=(3,4))
a
-----
array([[0.81695699, 0.42564822, 0.65951417, 0.2731807 ],
[0.7017702 , 0.12535894, 0.06747666, 0.55733467],
[0.91464488, 0.26259026, 0.88966237, 0.59253923]])
np.round(a,decimals=0)
------------
array([[1., 0., 1., 1.],
[1., 1., 1., 1.],
[0., 1., 0., 1.]])
np.round(a,decimals=1)
-------------
array([[0.8, 0. , 0.6, 0.6],
[0.5, 0.7, 0.7, 0.8],
[0.3, 0.9, 0.5, 0.7]])
numpy.clip(a, a_min, a_max, out=None, **kwargs)
它可以將數(shù)組的裁剪值保持在一個范圍內(nèi)。
arr = np.array([0,1,-3,-4,5,6,7,2,3])
arr.clip(0,5)
-----------------
array([0, 1, 0, 0, 5, 5, 5, 2, 3])
arr.clip(0,3)
------------------
array([0, 1, 0, 0, 3, 3, 3, 2, 3])
arr.clip(3,5)
------------------
array([3, 3, 3, 3, 5, 5, 5, 3, 3])
返回滿足條件的數(shù)組元素。
numpy.where(condition, [x, y, ]/)
condition:匹配的條件。如果true則返回x,否則y。
a = np.arange(12).reshape(4,3)
a
-------
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
np.where(a>5) ## Get The Index
--------------------
(array([2, 2, 2, 3, 3, 3], dtype=int64),
array([0, 1, 2, 0, 1, 2], dtype=int64))
a[np.where(a>5)] ## Get Values
--------------------------
array([ 6, 7, 8, 9, 10, 11])
它還可以用來替換pandas df中的元素。
np.where(data[feature].isnull(), 1, 0)
用給定的值替換數(shù)組中指定的元素。
numpy.put(a, ind, v)
a:數(shù)組
Ind:需要替換的索引
V:替換值
arr = np.array([1,2,3,4,5,6])
arr
--------
array([1, 2, 3, 4, 5, 6])
np.put(arr,[1,2],[6,7])
arr
--------
array([1, 6, 7, 4, 5, 6])
將一個數(shù)組的內(nèi)容復(fù)制到另一個數(shù)組中。
numpy.copyto(dst, src, casting='same_kind', where=True)
dst:目標(biāo)
src:來源
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
print('Before arr1',arr1)
print('Before arr2',arr1)
np.copyto(arr1,arr2)
print('After arr1',arr1)
print('After arr2',arr2)
---------------------------
Before arr1 [1 2 3]
Before arr2 [4 5 6]
After arr1 [4 5 6]
After arr2 [4 5 6]
intersect1d函數(shù)以排序的方式返回兩個數(shù)組中所有唯一的值。
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
Assume_unique:如果為真值,則假設(shè)輸入數(shù)組都是唯一的。
Return_indices:如果為真,則返回公共元素的索引。
ar1 = np.array([1,2,3,4,5,6])
ar2 = np.array([3,4,5,8,9,1])
np.intersect1d(ar1,ar2)
---------------
array([1, 3, 4, 5])
np.intersect1d(ar1,ar2,return_indices=True)
---------------
(array([1, 3, 4, 5]), ## Common Elements
array([0, 2, 3, 4], dtype=int64),
array([5, 0, 1, 2], dtype=int64))
numpy.setdiff1d(ar1, ar2, assume_unique=False)
np.setdiff1d函數(shù)返回arr1中在arr2中不存在的所有唯一元素。
a = np.array([1, 7, 3, 2, 4, 1])
b = np.array([9, 2, 5, 6, 7, 8])
np.setdiff1d(a, b)
---------------------
array([1, 3, 4])
numpy.setxor1d(ar1, ar2, assume_unique=False)
Setxor1d 將按順序返回兩個數(shù)組中所有唯一的值。
a = np.array([1, 2, 3, 4, 6])
b = np.array([1, 4, 9, 4, 36])
np.setxor1d(a,b)
--------------------
array([ 2, 3, 6, 9, 36])
numpy.union1d(ar1, ar2)
Union1d函數(shù)將兩個數(shù)組合并為一個。
a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 3, 5, 4, 36])
np.union1d(a,b)
-------------------
array([ 1, 2, 3, 4, 5, 36])
聯(lián)系客服