欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy數(shù)組拼接簡單示例

 更新時間:2017年12月15日 10:31:11   作者:故鄉(xiāng)月zyl  
這篇文章主要介紹了numpy數(shù)組拼接簡單示例,涉及對numpy數(shù)組的介紹,numpy數(shù)組的屬性等內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。

NumPy數(shù)組是一個多維數(shù)組對象,稱為ndarray。其由兩部分組成:

·實際的數(shù)據(jù)

·描述這些數(shù)據(jù)的元數(shù)據(jù)

大部分操作僅針對于元數(shù)據(jù),而不改變底層實際的數(shù)據(jù)。

關(guān)于NumPy數(shù)組有幾點必需了解的:

·NumPy數(shù)組的下標(biāo)從0開始。

·同一個NumPy數(shù)組中所有元素的類型必須是相同的。

NumPy數(shù)組屬性

在詳細(xì)介紹NumPy數(shù)組之前。先詳細(xì)介紹下NumPy數(shù)組的基本屬性。NumPy數(shù)組的維數(shù)稱為秩(rank),一維數(shù)組的秩為1,二維數(shù)組的秩為2,以此類推。在NumPy中,每一個線性的數(shù)組稱為是一個軸(axes),秩其實是描述軸的數(shù)量。比如說,二維數(shù)組相當(dāng)于是兩個一維數(shù)組,其中第一個一維數(shù)組中每個元素又是一個一維數(shù)組。所以一維數(shù)組就是NumPy中的軸(axes),第一個軸相當(dāng)于是底層數(shù)組,第二個軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。

NumPy的數(shù)組中比較重要ndarray對象屬性有:

1.ndarray.ndim:數(shù)組的維數(shù)(即數(shù)組軸的個數(shù)),等于秩。最常見的為二維數(shù)組(矩陣)。

2.ndarray.shape:數(shù)組的維度。為一個表示數(shù)組在每個維度上大小的整數(shù)元組。例如二維數(shù)組中,表示數(shù)組的“行數(shù)”和“列數(shù)”。ndarray.shape返回一個元組,這個元組的長度就是維度的數(shù)目,即ndim屬性。

3.ndarray.size:數(shù)組元素的總個數(shù),等于shape屬性中元組元素的乘積。

4.ndarray.dtype:表示數(shù)組中元素類型的對象,可使用標(biāo)準(zhǔn)的Python類型創(chuàng)建或指定dtype。另外也可使用前一篇文章中介紹的NumPy提供的數(shù)據(jù)類型。

5.ndarray.itemsize:數(shù)組中每個元素的字節(jié)大小。例如,一個元素類型為float64的數(shù)組itemsiz屬性值為8(float64占用64個bits,每個字節(jié)長度為8,所以64/8,占用8個字節(jié)),又如,一個元素類型為complex32的數(shù)組item屬性為4(32/8)。

6.ndarray.data:包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。

數(shù)組拼接方法一

思路:首先將數(shù)組轉(zhuǎn)成列表,然后利用列表的拼接函數(shù)append()、extend()等進(jìn)行拼接處理,最后將列表轉(zhuǎn)成數(shù)組。

示例1:

>>> import numpy as np
>>> a=np.array([1,2,5])
>>> b=np.array([10,12,15])
>>> a_list=list(a)
>>> b_list=list(b)
>>> a_list.extend(b_list)
>>> a_list
[1, 2, 5, 10, 12, 15]
>>> a=np.array(a_list)
>>> a
array([ 1, 2, 5, 10, 12, 15])

該方法只適用于簡單的一維數(shù)組拼接,由于轉(zhuǎn)換過程很耗時間,對于大量數(shù)據(jù)的拼接一般不建議使用。

數(shù)組拼接方法二

思路:numpy提供了numpy.append(arr,values,axis=None)函數(shù)。對于參數(shù)規(guī)定,要么一個數(shù)組和一個數(shù)值;要么兩個數(shù)組,不能三個及以上數(shù)組直接append拼接。append函數(shù)返回的始終是一個一維數(shù)組。

示例2:

>>> a=np.arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> np.append(a,10)
array([ 0, 1, 2, 3, 4, 10])
>>> a
array([0, 1, 2, 3, 4])
 
>>> b=np.array([11,22,33])
>>> b
array([11, 22, 33])
>>> np.append(a,b)
array([ 0, 1, 2, 3, 4, 11, 22, 33])
 
>>> a
array([[1, 2, 3],
    [4, 5, 6]])
>>> b=np.array([[7,8,9],[10,11,12]])
>>> b
array([[ 7, 8, 9],
    [10, 11, 12]])
>>> np.append(a,b)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

numpy的數(shù)組沒有動態(tài)改變大小的功能,numpy.append()函數(shù)每次都會重新分配整個數(shù)組,并把原來的數(shù)組復(fù)制到新數(shù)組中。

數(shù)組拼接方法三

思路:numpy提供了numpy.concatenate((a1,a2,...),axis=0)函數(shù)。能夠一次完成多個數(shù)組的拼接。其中a1,a2,...是數(shù)組類型的參數(shù)

示例3:

>>> a=np.array([1,2,3])
>>> b=np.array([11,22,33])
>>> c=np.array([44,55,66])
>>> np.concatenate((a,b,c),axis=0) # 默認(rèn)情況下,axis=0可以不寫
array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #對于一維數(shù)組拼接,axis的值不影響最后的結(jié)果
 
>>> a=np.array([[1,2,3],[4,5,6]])
>>> b=np.array([[11,21,31],[7,8,9]])
>>> np.concatenate((a,b),axis=0)
array([[ 1, 2, 3],
    [ 4, 5, 6],
    [11, 21, 31],
    [ 7, 8, 9]])
>>> np.concatenate((a,b),axis=1) #axis=1表示對應(yīng)行的數(shù)組進(jìn)行拼接
array([[ 1, 2, 3, 11, 21, 31],
    [ 4, 5, 6, 7, 8, 9]])

對numpy.append()和numpy.concatenate()兩個函數(shù)的運行時間進(jìn)行比較

示例4:

>>> from time import clock as now
>>> a=np.arange(9999)
>>> b=np.arange(9999)
>>> time1=now()
>>> c=np.append(a,b)
>>> time2=now()
>>> print time2-time1
28.2316728446
>>> a=np.arange(9999)
>>> b=np.arange(9999)
>>> time1=now()
>>> c=np.concatenate((a,b),axis=0)
>>> time2=now()
>>> print time2-time1
20.3934997107

可知,concatenate()效率更高,適合大規(guī)模的數(shù)據(jù)拼接

總結(jié)

以上就是本文關(guān)于numpy數(shù)組拼接簡單示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

淺談numpy數(shù)組的幾種排序方式

Python編程給numpy矩陣添加一列方法示例

Python numpy生成矩陣、串聯(lián)矩陣代碼分享

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • 小白入門篇使用Python搭建點擊率預(yù)估模型

    小白入門篇使用Python搭建點擊率預(yù)估模型

    本文將從零開始,僅僅利用基礎(chǔ)的numpy庫,使用Python實現(xiàn)一個最簡單的神經(jīng)網(wǎng)絡(luò)(或者說是簡易的LR,因為LR就是一個單層的神經(jīng)網(wǎng)絡(luò)),解決一個點擊率預(yù)估的問題。感興趣的朋友跟隨小白一起看看吧
    2018-10-10
  • Python中函數(shù)的多種格式和使用實例及小技巧

    Python中函數(shù)的多種格式和使用實例及小技巧

    這篇文章主要介紹了Python中函數(shù)的多種格式和使用實例及小技巧,本文講解了普通格式、帶收集位置參數(shù)的函數(shù)、帶收集關(guān)鍵字參數(shù)的函數(shù)、函數(shù)特殊用法、內(nèi)嵌函數(shù)和閉包等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Python3.6+Django2.0以上 xadmin站點的配置和使用教程圖解

    Python3.6+Django2.0以上 xadmin站點的配置和使用教程圖解

    django自帶的admin站點雖然功能強(qiáng)大,但是界面不是很好看。這篇文章主要介紹了Python3.6+Django2.0以上 xadmin站點的配置和使用 ,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Python使用gTTS庫實現(xiàn)文本轉(zhuǎn)換為語音的詳細(xì)步驟

    Python使用gTTS庫實現(xiàn)文本轉(zhuǎn)換為語音的詳細(xì)步驟

    文本轉(zhuǎn)換為語音(Text-to-Speech,簡稱TTS)技術(shù)是人工智能的重要組成部分,廣泛應(yīng)用于智能助手、導(dǎo)航系統(tǒng)、讀屏軟件和智能家居等領(lǐng)域,TTS技術(shù)使得機(jī)器能夠?qū)嫖淖洲D(zhuǎn)換為自然流暢的語音,本文將介紹如何使用Python的gTTS庫實現(xiàn)簡單的TTS功能,需要的朋友可以參考下
    2024-07-07
  • 利用numpy和pandas處理csv文件中的時間方法

    利用numpy和pandas處理csv文件中的時間方法

    下面小編就為大家分享一篇利用numpy和pandas處理csv文件中的時間方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    這篇文章主要介紹了Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作,結(jié)合實例形式分析了Python使用with關(guān)鍵字及上下文管理器、contextmanager進(jìn)行文件打開、讀寫、關(guān)閉等操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • 使用豆瓣源來安裝python中的第三方庫方法

    使用豆瓣源來安裝python中的第三方庫方法

    這篇文章主要介紹了使用豆瓣源來安裝python中的第三方庫方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python多線程編程(四):使用Lock互斥鎖

    Python多線程編程(四):使用Lock互斥鎖

    這篇文章主要介紹了Python多線程編程(四):使用Lock互斥鎖,本文講解了互斥鎖概念、同步阻塞、代碼示例等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Python可視化神器pyecharts繪制折線圖詳情

    Python可視化神器pyecharts繪制折線圖詳情

    這篇文章主要介紹了Python可視化神器pyecharts繪制折線圖詳情,折線圖和柱狀圖一樣是我們?nèi)粘?梢暬疃嗟囊粋€圖例,當(dāng)然它的優(yōu)勢和適用場景相信大家肯定不陌生,要想快速的得出趨勢,抓住趨勢二字,就會很快的想到要用折線圖來表示了
    2022-07-07
  • Python Scrapy爬蟲框架使用示例淺析

    Python Scrapy爬蟲框架使用示例淺析

    Scrapy爬蟲框架可以實現(xiàn)多線程爬取目標(biāo)內(nèi)容,簡化代碼邏輯,提高開發(fā)效率,這篇文章主要介紹了Python Scrapy爬蟲框架的使用示例,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05

最新評論