⑴ python numpy查詢數組是否有某個數的總個數
importnumpyasnp
a=np.ones((4,5))
print(a)
print(np.sum(a==1))
假定數組為a
可以先試用a==某個數,轉換為一個包含True或者False的數字,
等於該樹則為True,不等於則為False
True又可以當作1,False可以當作0
使用np.sum求和可以得到等於該數的總個數
⑵ Python numpy 選取數組前幾位的值和下標
針對一維的numpy的ndarray數組,獲取前N位的具體的數值(value),
針對一維的numpy的ndarray數組,獲取前N位所在的下標(index),
一個是原地sort,一個是np.argsort()獲取下標。如果是多維數組,可以先採用arr.flatten()轉換為一維的數組。
⑶ 在python中,怎麼查看numpy模塊中的exp函數源代碼
pipinstallipython
ipython
$pipenv--three
$python3.6-c"frompathlibimportPath;fn='Pipfile';Path(fn).write_text(Path(fn).read_text().replace('pypi.org','mirrors.aliyun.com/pypi'))"
$pipenvshell
$pipenvinstallnumpy
$pipenvopennumpy
⑷ python numpy 比較兩個二維數組中相同的行或列,越簡潔越好
樓上只能對應位置行兩兩比較,一旦相同行不在相同位置就不行了,建議使用集合交集思路
a = set([tuple(t) for t in a])
b = set([tuple(t) for t in b])
matched = np.array(list(a.intersection(b)))
⑸ (Python)numpy 常用操作
不放回取樣:
從列表ori中不放回地取n個數
通過這種操作,我們可以獲得一個二維列表的子集:
(如果這個二維列表是圖的鄰接矩陣,那麼就是對圖進行隨機采樣,獲得一個圖的子圖)
首先要注意,"+" 操作對於list和numpy.array是完全不同的
python 中的list,"+"代表拼接:
在numpy.array中,"+"代表矩陣相加
keepdim指的是維度不變,常在sum中使用。如:
會發現,keepdim之後還是二維的
這里要注意,pytorch和numpy里max()函數的返回值是不同的
pytorch:
也就是說,max(1)代表求第一維的最大值,對於二維數組來說,就是求縱向的最大值,然後,第一個返回值是最大值所形成數組,第二個返回值是最大值所在的索引。這一個技巧在機器學習的分類任務中很常用,比如我們的分類任務是把數據分成m類,那麼最終我們模型的輸出是m維的,對於n個樣本就是n*m,如果要判斷我們的模型最終的分類結果,就是找n個樣本里,每個樣本m維輸出的最大值索引,代表樣本是這個類的可能性最大。我們可以方便地用這種方式找到最大值地索引:
其中test_out是模型輸出,predict_y則是分類結果
另外一點要注意的是,numpy與pytorch不同,numpy的max()只有一個返回值:
也就是說,numpy.max()不會返回最大值所在的索引
⑹ numpy如何查找數組中個數最多的元素
importnumpyasnp
b=np.array([[0,4,4],[2,0,3],[1,3,4]])
print('b=')
print(b)
l=sorted([(np.sum(b==i),i)foriinset(b.flat)])
'''
np.sum(b==i)#統計b中等於i的元素個數
set(b.flat)#將b轉為一維數組後,去除重復元素
sorted()#按元素個數從小到大排序
l[-1]#取出元素個數最多的元組對(count,element)
'''
print('maxtimesofelementinbis{1}with{0}times'.format(*l[-1]))
[willie@localhost pys]$ python3 countnumpy.py
b=
[[0 4 4]
[2 0 3]
[1 3 4]]
max times of element in b is 4 with 3 times