Python NumPy一維陣列的切片

2021-08-20 08:27:36 字數 1090 閱讀 9970

numpy中對於一維陣列的切片處理,跟list的操作感覺差不多:

in [1]: import numpy as np

in [2]: arr1 = np.arange(10)

in [3]: arr1

out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

in [4]: arr2 = arr1[:3]

in [5]: arr2

out[5]: array([0, 1, 2])

但是,接下來就不同了,在list裡,我們知道切片操作就相當於建立了乙個副本,最這個副本的操作是不會影響原來的列表的,但是numpy中顯然不是:

in [6]: arr2[0] = 100

in [7]: arr2

out[7]: array([100, 1, 2])

in [8]: arr1

out[8]: array([100, 1, 2, 3, 4, 5, 6, 7, 8, 9])

從這裡可以看到,對arr2中進行重新賦值,結果原來的arr1也改變了,原因在於在numpy中,將乙個標量值賦給乙個切片時,會自動傳播到整個選區,也就是「廣播」的概念,也就是對切片的所有操作,都會直接顯示在最初的陣列上

numpy這麼設定是因為numpy處理的物件是大資料,對於經常的複製操作來說,大量的資料顯然會大大降低效能,

當然,如果想要像之前一樣獲得乙個副本,可以顯式地複製:

in [9]: arr3 = arr1[2:4].copy()

in [10]: arr3

out[10]: array([2, 3])

in [11]: arr3[0] = 11111

in [12]: arr3

out[12]: array([11111, 3])

in [13]: arr1

out[13]: array([100, 1, 2, 3, 4, 5, 6, 7, 8, 9])

以上~

Python Numpy二維陣列和Numpy中的軸

二維陣列的表示方法 python原生 列表的列表 numpy ndarray pandas dataframe 二維ndarray與python list 1.ndarry效能更好 3.訪問語法差別 a 1,2 numpy ndarray a 1 2 python list numpy的軸 axis...

Python Numpy陣列儲存

numpy提供了幾種資料儲存的方法。以3 4陣列a為例 這種方法只能儲存為二進位制檔案,且不能儲存當前資料的行列資訊,檔案字尾不一定非要是bin,也可以為txt,但不影響儲存格式,都是二進位制。這種儲存方法對資料讀取有要求,需要手動指定讀出來的資料的的dtype,如果指定的格式與儲存時的不一致,則讀...

Python Numpy陣列計算

1 numpy是高效能科學計算和資料分析的基礎包。它是pandas等其他各種工具的基礎。2 numpy的主要功能 3 安裝方法 pip install numpy 1 建立ndarray np.array 2 ndarray是多維陣列結構,與列表的區別是 3 常用屬性 4 常用方法 array.sh...