1. 程式人生 > >Python之Numpy陣列拼接,組合,連線

Python之Numpy陣列拼接,組合,連線

轉自:https://www.douban.com/note/518335786/?type=like

============改變陣列的維度==================
已知reshape函式可以有一維陣列形成多維陣列
ravel函式可以展平陣列
b.ravel()
flatten()函式也可以實現同樣的功能
區別:ravel只提供檢視view,而flatten分配記憶體儲存

重塑:

用元祖設定維度
>>> b.shape=(4,2,3)
>>> b
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]])

轉置:


>>> b
array([0, 1],
       [2, 3])
>>> b.transpose()
array([0, 2],
       [1, 3])

=============陣列的組合==============
>>> a
array([0, 1, 2],
       [3, 4, 5],
       [6, 7, 8])
>>> b = a*2
>>> b
array([ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])

1.水平組合
>>> np.hstack((a,b))
array([ 0, 1, 2, 0, 2, 4],
       [ 3, 4, 5, 6, 8, 10],
       [ 6, 7, 8, 12, 14, 16])
>>> np.concatenate((a,b),axis=1)
array([ 0, 1, 2, 0, 2, 4],
       [ 3, 4, 5, 6, 8, 10],
       [ 6, 7, 8, 12, 14, 16])

2.垂直組合

>>> np.vstack((a,b))
array([ 0, 1, 2],
       [ 3, 4, 5],
       [ 6, 7, 8],
       [ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])
>>> np.concatenate((a,b),axis=0)
array([ 0, 1, 2],
       [ 3, 4, 5],
       [ 6, 7, 8],
       [ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])

3.深度組合:沿著縱軸方向組合

>>> np.dstack((a,b))
array([[ 0, 0],
        [ 1, 2],
        [ 2, 4],

       [ 3, 6],
        [ 4, 8],
        [ 5, 10],

       [ 6, 12],
        [ 7, 14],
        [ 8, 16]])

4.列組合column_stack()
一維陣列:按列方向組合
二維陣列:同hstack一樣

5.行組合row_stack()
以為陣列:按行方向組合
二維陣列:和vstack一樣

6.==用來比較兩個陣列
>>> a==b
array([ True, False, False],
       [False, False, False],
       [False, False, False], dtype=bool)
#True那個因為都是0啊

==================陣列的分割===============
>>> a
array([0, 1, 2],
       [3, 4, 5],
       [6, 7, 8])
>>> b = a*2
>>> b
array([ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])

1.水平分割(難道不是垂直分割???)
>>> np.hsplit(a,3)
[array([0],
       [3],
       [6]),
 array([1],
       [4],
       [7]),
array([2],
       [5],
       [8])]
split(a,3,axis=1)同理達到目的

2.垂直分割
>>> np.vsplit(a,3)
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]

split(a,3,axis=0)同理達到目的

3.深度分割
某三維陣列:::
>>> d = np.arange(27).reshape(3,3,3)
>>> d
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]])

深度分割後(即按照深度的方向分割)
注意:dsplite只對3維以上陣列起作用
raise ValueError('dsplit only works on arrays of 3 or more dimensions')
ValueError: dsplit only works on arrays of 3 or more dimensions

>>> np.dsplit(d,3)
[array([[ 0],
        [ 3],
        [ 6],

       [ 9],
        [12],
        [15],

       [18],
        [21],
        [24]]), array([[ 1],
        [ 4],
        [ 7],

       [10],
        [13],
        [16],

       [19],
        [22],
        [25]]), array([[ 2],
        [ 5],
        [ 8],

       [11],
        [14],
        [17],

       [20],
        [23],
        [26]])]

===================陣列的屬性=================
>>> a.shape #陣列維度
(3, 3)
>>> a.dtype #元素型別
dtype('int32')
>>> a.size #陣列元素個數
9
>>> a.itemsize #元素佔用位元組數
4
>>> a.nbytes #整個陣列佔用儲存空間=itemsize*size
36
>>> a.T #轉置=transpose
array([0, 3, 6],
       [1, 4, 7],
       [2, 5, 8])

相關推薦

PythonNumpy陣列拼接組合連線

轉自:https://www.douban.com/note/518335786/?type=like ============改變陣列的維度==================已知reshape函式可以有一維陣列形成多維陣列ravel函式可以展平陣列b.ravel()flatten()函式也可以實現同樣的功

PYthonnumpy陣列去除重複元素行或列

data = np.array([[1,8,3,3,4], [1,8,9,9,4], [1,8,3,3,4]]) #刪除整個陣列的重複元素 uniques = np.unique(data) print( un

python路——函數叠代生成器

什麽 上一個 dir 指針 tor sin import lec collect ---恢復內容開始--- 叠代器 生成器 叠代器: 1, 什麽是叠代器協議 ① dir(被測對象) 如果它含有 __iter__,那這個對象叫做可叠代對象,遵循可叠代協議。 ② 可叠代對

Python高等數學(導數微分)

在知乎上看到關於導數和微分的區別:https://www.zhihu.com/question/22199657 導數(Derivative),也叫導函式值。又名微商,是微積分中的重要基礎概念。當函式y=f(x)的自變數x在一點x0上產生一個增量Δx時,函式輸出值的增量Δy與自變數增量Δx的比值

Python線性代數(矩陣運算逆矩陣伴隨矩陣)

np.eye(10)*10 # 10階方陣,當對角線值為1時為對角矩陣 np.eye(5) array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1

pythonnumpy.power()陣列元素求n次方

numpy.power(x1, x2) 陣列的元素分別求n次方。x2可以是數字,也可以是陣列,但是x1和x2的列數要相同。 >>> x1 = range(6) >>> x1 [0, 1, 2, 3, 4, 5] >>&g

pythonsys.stdout、sys.stdinstdout.write等

sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 變數包含與標準I/O 流對應的流物件. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時候你就可以重定

python路day03--資料型別分析轉換索引切片str常用操作方法

資料型別整體分析 int :用於計算bool:True False 使用者判斷str:少量資料的儲存list:列表 儲存大量資料 上億資料[1,2,3,'zzy',[aa]]元組:只讀列表(1,23,'asdadas')dist:字典 鍵值對的形式儲存,關係型{'name':'小王八','age':16}

pythonDjango框架篇-路由系統檢視模板ORM複習

1. Urls.py 路由系統: 正則 分組匹配 --> 位置引數 分組命名匹配 --> 關鍵字引數 分級路由 include 給路由起別名 name="xx" 反向解析url view

Android頂部導航TabLayout和ViewPager的組合setupWithViewPager有點坑

TabLayout是Android Design Support Library的元件,可以很方便的寫出頂部導航欄比以前那個什麼TabHost好用多了,因為是Design Support Library下的控制元件,所以使用它要引入相關依賴 impleme

Python 父的對話聊起關於智慧財產權、知識共享與文章翻譯

一、緣起 前不久,我在翻譯 Guido van Rossum(Python之父)的文章時,給他留言,申請非商業用途的翻譯授權。 過程中起了點小誤會,略去不表,最終的結果是:他的文章以CC BY-NC-SA 4.0 許可協議進行授權。部分對話如下: CC 協議是一種授權許可協議,我曾看到過幾次,但瞭解不

Python資料分析numpy陣列全解析

1 什麼是numpy numpy是一個在Python中做科學計算的基礎庫,重在數值計算,也是大部分Python科學計算庫的基礎庫,多用於大型、多維資料上執行數值計算。 在NumPy 中,最重要的物件是稱為 ndarray 的N維陣列型別,它是描述相同型別的元素集合,numpy所有功能幾乎都以ndarray

Python NumPy

python numpy NumPy的主要對象是同質的多維數組。它是一個有明確索引的相同類型的元素組成的表。在NumPy中維度稱之為軸,軸數稱之為列。舉個例子:例一:[ 1, 2, 1 ]這是一個一維數組,因為它只有一個軸,這個軸的長度是3.列二:[[ 1., 0., 0.],[ 0., 1., 2.

BeautifulSoup 使用select方法詳解(通過標簽名類名 id組合屬性查找)

chrome red 例如 ttl app user encode and 定位 import requestsfrom bs4 import BeautifulSoupblslib="html5lib"user_agent="Mozilla/5.0 (Macintosh;

PythonNumPy(axis=0 與axis=1)區分

tail ner def ros som 分享 然而 article 本質 轉自:http://blog.csdn.net/wangying19911991/article/details/73928172 https://www.zhihu.com/

python中將Numpy陣列儲存為影象

第一種方案原文 可以使用scipy.misc,程式碼如下: import scipy.misc misc.imsave('out.jpg', image_array) 上面的scipy版本會標準化所有影象,以便min(資料)變成黑色,max(資料)變成白色。如果資料應該是精確的灰度級或準

UML類關係(依賴關聯聚合組合泛化實現)

轉自 https://blog.csdn.net/k346k346/article/details/59582926   在學習面向物件設計時,類關係涉及依賴、關聯、聚合、組合和泛化這五種關係,耦合度依次遞增。關於耦合度,可以簡單地理解為當一個類發生變更時,對其他類造成的影響程

UML類關系(依賴關聯聚合組合泛化實現)

對比 區別 ++ brush 面向對象設計 ali 單向關聯 箭頭 有關 轉自https://blog.csdn.net/k346k346/article/details/59582926 在學習面向對象設計時,類關系涉及依賴、關聯、聚合、組合和泛化這五種關系,耦合度依

類的關係(泛化, 實現關聯聚合組合依賴)

類的關係 在UML類圖中,常見的有以下幾種關係: 泛化(Generalization), 實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency) 1. 泛化(Generalizati