Python中flatten( )函數(shù)及函數(shù)用法詳解
flatten()函數(shù)用法
flatten是numpy.ndarray.flatten的一個(gè)函數(shù),即返回一個(gè)一維數(shù)組。
flatten只能適用于numpy對(duì)象,即array或者mat,普通的list列表不適用!。
a.flatten():a是個(gè)數(shù)組,a.flatten()就是把a(bǔ)降到一維,默認(rèn)是按行的方向降 。
a.flatten().A:a是個(gè)矩陣,降維后還是個(gè)矩陣,矩陣.A(等效于矩陣.getA())變成了數(shù)組。具體看下面的例子:
1、用于array(數(shù)組)對(duì)象
>>> from numpy import *
>>> a=array([[1,2],[3,4],[5,6]])
>>> a
array([[1, 2],
[3, 4],
[5, 6]])
>>> a.flatten() #默認(rèn)按行的方向降維
array([1, 2, 3, 4, 5, 6])
>>> a.flatten('F') #按列降維
array([1, 3, 5, 2, 4, 6])
>>> a.flatten('A') #按行降維
array([1, 2, 3, 4, 5, 6])
>>>
2、用于mat(矩陣)對(duì)象
>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
[4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
[4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
>>> y=a.flatten().A
>>> shape(y)
(1L, 6L)
>>> shape(y[0])
(6L,)
>>> a.flatten().A[0]
array([1, 2, 3, 4, 5, 6])
>>>
從中可以看出matrix.A的用法和矩陣發(fā)生的變化。
3、但是該方法不能用于list對(duì)象,想要list達(dá)到同樣的效果可以使用列表表達(dá)式:
>>> a=array([[1,2],[3,4],[5,6]]) >>> [y for x in a for y in x] [1, 2, 3, 4, 5, 6] >>> !
下面看下Python中flatten用法
一、用在數(shù)組
>>> a = [[1,3],[2,4],[3,5]] >>> a = array(a) >>> a.flatten() array([1, 3, 2, 4, 3, 5])
二、用在列表
如果直接用flatten函數(shù)會(huì)出錯(cuò)
>>> a = [[1,3],[2,4],[3,5]] >>> a.flatten() Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> a.flatten() AttributeError: 'list' object has no attribute 'flatten'
正確的用法
>>> a = [[1,3],[2,4],[3,5],["abc","def"]] >>> a1 = [y for x in a for y in x] >>> a1 [1, 3, 2, 4, 3, 5, 'abc', 'def']
或者(不理解)
>>> a = [[1,3],[2,4],[3,5],["abc","def"]] >>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x] >>> flatten(a) [1, 3, 2, 4, 3, 5, 'abc', 'def']
三、用在矩陣
>>> a = [[1,3],[2,4],[3,5]] >>> a = mat(a) >>> y = a.flatten() >>> y matrix([[1, 3, 2, 4, 3, 5]]) >>> y = a.flatten().A >>> y array([[1, 3, 2, 4, 3, 5]]) >>> shape(y) (1, 6) >>> shape(y[0]) (6,) >>> y = a.flatten().A[0] >>> y array([1, 3, 2, 4, 3, 5])
總結(jié)
以上所述是小編給大家介紹的Python中flatten( )函數(shù)及函數(shù)用法詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- softmax及python實(shí)現(xiàn)過(guò)程解析
- Python下的Softmax回歸函數(shù)的實(shí)現(xiàn)方法(推薦)
- 對(duì)python中數(shù)據(jù)集劃分函數(shù)StratifiedShuffleSplit的使用詳解
- 淺析python3字符串格式化format()函數(shù)的簡(jiǎn)單用法
- 詳解python中的Turtle函數(shù)庫(kù)
- 詳解C++調(diào)用Python腳本中的函數(shù)的實(shí)例代碼
- 對(duì)Python中plt的畫(huà)圖函數(shù)詳解
- Softmax函數(shù)原理及Python實(shí)現(xiàn)過(guò)程解析
相關(guān)文章
Python中random模塊生成隨機(jī)數(shù)詳解
本文給大家匯總了一下在Python中random模塊中最常用的生成隨機(jī)數(shù)的方法,有需要的小伙伴可以參考下2016-03-03
python內(nèi)置函數(shù)sorted()用法深入分析
這篇文章主要介紹了python內(nèi)置函數(shù)sorted()用法,結(jié)合實(shí)例形式較為深入的分析了Python內(nèi)置函數(shù)sorted()功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
Python利用watchdog模塊監(jiān)控文件變化
這篇文章主要為大家介紹一個(gè)Python中的模塊:watchdog模塊,它可以實(shí)現(xiàn)監(jiān)控文件的變化。文中通過(guò)示例詳細(xì)介紹了watchdog模塊的使用,需要的可以參考一下2022-06-06
Python實(shí)現(xiàn)可設(shè)置持續(xù)運(yùn)行時(shí)間、線(xiàn)程數(shù)及時(shí)間間隔的多線(xiàn)程異步post請(qǐng)求功能
這篇文章主要介紹了Python實(shí)現(xiàn)可設(shè)置持續(xù)運(yùn)行時(shí)間、線(xiàn)程數(shù)及時(shí)間間隔的多線(xiàn)程異步post請(qǐng)求功能,涉及Python網(wǎng)絡(luò)請(qǐng)求的創(chuàng)建、發(fā)送、響應(yīng)、處理等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Pytorch中torch.argmax()函數(shù)使用及說(shuō)明
這篇文章主要介紹了Pytorch中torch.argmax()函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
一文帶你掌握Python自然語(yǔ)言處理庫(kù)SpaCy
SpaCy是一個(gè)非常強(qiáng)大的Python自然語(yǔ)言處理庫(kù),它包含了眾多強(qiáng)大功能,如詞性標(biāo)注、命名實(shí)體識(shí)別、依賴(lài)關(guān)系解析等等,這篇文章的目標(biāo)是幫助你了解SpaCy的基本功能和如何使用,需要的朋友可以參考下2023-07-07

