python numpy.array_python list numpy.array区别
轉載https://blog.csdn.net/caoyuan666/article/details/105239876
概念
list數組
list是python基本數據類型,它的元素類型可以不同
元組或列表(tuple,list)沒有矩陣概念,只有嵌套。所以你不能用[i,j]像matlab等里面一樣去二維索引一個list,只能用[i][j]這樣相當于索引了兩次,先索引外層[i]個列表,再索引內層第j個元素。(類似地,[i,j,k…]改為[i][j][k][…]就ok)x = list()? x.append(1) x.extend([2,3,4])#多個elements
numpy數組
array是numpy的一種數據類型,它所包含的元素必須相同
Numpy是)專門針對數組的操作和運算進行了設計,所以數組的存儲效率和輸入輸出性能遠優于Python中的嵌套列表,數組越大,Numpy的優勢就越明顯。通常Numpy數組中的所有元素的類型都是相同的,而Python列表中的元素類型是任意的,所以在通用性能方面Numpy數組不及Python列表,但在科學計算中,可以省掉很多循環語句,代碼使用方面比Python列表簡單的多。np.arange(a,b,c)表示產生從a-b不包括b,間隔為c的一個array,數據類型默認是int32。
linspace(a,b,c)表示的是把a-b平均分成c分,它包括b
淺拷貝和深拷貝
numpy數組
array的索引最終產生的是一個「 原始數據的淺拷貝」,他和原始數據共用一塊內存。當我們修改了b的第一個元素的時候,a的第一個元素也被修改了。因為他們都是指向的同一個內存。
這是因為當我們執行b=a[:2]等語句的時候,拷貝的是指向這個元素的指針,當我們想要修改的時候,也是修改了指針指向的元素值。
list列表:
list對象在執行的時候拷貝了數據與指針,就不會有這種狀況啦。
但是,對于列表,如果直接使用b = a,同樣是淺拷貝,可以使用b = a[ : ]
實踐部分
針對同樣的元組類型,其切片slice和數字不太一樣,slice切下來還是原本類型,數字索引一般丟棄一層“外殼”。
numpy里ndarray不是一種真正的“新”數據類型,而只是格式重排,將list分維度存儲,便于利用。其本質類型和次級類型和lsit相似(但是比list省略了索引存儲量,所以一般會節約存儲空間)。
ps.
print("%s%s"%(x,x))#沒有逗號,需要用%來對應
在循環或其他地方不希望print換行
print("ddd",end=' ')
總結
以上是生活随笔為你收集整理的python numpy.array_python list numpy.array区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双字节数据 先低后高_1.4 C++数据
- 下一篇: 如何写python脚本抓取数据并计算_【