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...