教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Numpy模塊執(zhí)行數組間的轉換操作

更新時間:2021年12月09日10時15分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

ndarray對象提供了一些可以便捷地改變數組基礎形狀的屬性和方法,例如,將一個3行4列的二維數組轉換成6行2列的二維數組,關于這些屬性和方法的具體說明如表9-3所示。



上述這些方法都能夠改變數組的形狀,但是,reshape()、ravel()方法和T屬性返的都是一個已經修改的新數組,并不會修改原始數組。例如:

>>> import numpy as np
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]]    #創(chuàng)建一個2行3列的數組
>>> arr
array([[1, 2, 3],
   [4,5,6]])
>>> new_arr = arr.reshape((3, 2))     #返回維度為(3,2)的數組
>>> new arr
array([[1, 2],
   [3,4],
   [5,6]])
>>> arr.ravel()     #對數組進行降維處理
array([1, 2, 3, 4, 5, 6])
>>> arr.T           #對數組進行軸對換
array([[1, 4],
   [2,5],
   [3,6]])
>>> arr            #查看原始數組是否發(fā)生變化
array([[1, 2, 3],    
      [4,5,6]])

numpy數組制樣支持索引和切片操作,具體的用法與序列類型相似。例如:

>>>arr = np.arange(1,9).reshape((4,22)) #生成4行2列的數組
>>> arr
array([[1, 2],
   [3,4],
   [5,6],
   [7,8]])
>>> arr[2]            #獲取第2行數據
array([5, 6])
>>> arr[1:3]          #獲取第1~2行數據
array([[3, 4],
   [5,6]])

除此之外,numpy中提供了一批具有基本數學運算功能的函數,如表9-4所示。

表9-4 numpy模塊的算術運算函數

表9-4中列舉的所有運算函數的參數y都是可選的,如果指定了參數y,結果將被保存到y(tǒng)中,比如np.add(a,b,a)表示a+=b;如果沒有指定參數y,結果將被保存到一個新創(chuàng)建的數組中,比如c=np.add(a,b)表示c=a+b。

數組無須循環(huán)遍歷便可以對每個元素執(zhí)行批量的算術操作,也就是說形狀相同的數組之間執(zhí)行算術運算時,會應用到位置相同的元素上進行計算。例如,數組a=[1,2,3]和數組b=[4,5,6],a*b所得的結果為1*4、2*5和3*6組成的一個新數組。若兩個數組的基礎形狀不同,numpy可能會觸發(fā)廣播機制,該機制需要滿足以下任一條件。

(1)數組在某維度上元素的長度相等。

(2)數組在某維度上元素的長度為1。

廣播機制描述了numpy如何在算術運算期間處理具有不同形狀的數組,較小的數組被“廣播”到較大的數組中,使得它們具有兼容的形狀。例如:

>>> a= np.array([1, 2, 3])
>>> b = np.array([4,5, 6])
>>>a+b          # 形狀相同的數組進行求和運算
array([5, 7, 9])
>>> c = np.array([[7,8,9],[10,11,12]])
>>>a+c         # 形狀不同的數組進行求和運算
array([[ 8, 10, 12],
[11, 13, 15]])

numpy模塊還包括線性代數、隨機和概率分布、基本數值統(tǒng)計運算、傅里葉變換等豐富的功能,欲了解更多功能,讀者可以到numpy官網查詢學習。






猜你喜歡:

NumPy常用的數據類型有哪些?怎樣進行轉換?

NumPy數組有幾種創(chuàng)建方法?

NumPy數組對象介紹:ndarray對象的常用屬性

BRIEF算法步驟詳細介紹

傳智教育AI人工智能培訓

0 分享到:
和我們在線交談!