python裡的陣列和列表內 的使用方法

2021-09-18 03:36:55 字數 1164 閱讀 3669

注意datamat的型別是numpy中的陣列array,並不是列表(list)

**:print(datamat)

結果:[[ 3.  10.   1. ]

[ 1.1  1.   1. ]

[ 3.   8.   1. ]

[ 1.4  1.5  1.6]

[ 0.4  0.5  0.6]]

**:print(datamat[:2])

解釋[:2]表示取該矩陣內的前兩行

[[ 3.  10.   1. ]

[ 1.1  1.   1. ]]

** :print(datamat[:,2])

解釋[:2]表示取該矩陣內的第三列

結果:[1.  1.  1.  1.6 0.6]

** :print(datamat[2,:])

解釋[:2]表示取該矩陣內的第三行

結果:[3.  8.  1. ]

**:print(datamat[1:3,:])

結果[[1.1 1.  1. ]

[3.  8.  1. ]]

解釋:[1:3,:]表示取陣列(矩陣)的第1行第2行。

如果是陣列的話,比如data=[1,2,3]

print(data[:2])代表取前兩個資料

結果:[1, 2]

但是列表不能用[,n]來取第n列的資料

​ 原因是因為在python中,普通的列表list和numpy中的陣列array是不一樣的,最大的不同是:乙個列表中可以存放不同型別的資料,包括int、float和str,甚至布林型;而乙個陣列中存放的資料型別必須全部相同,int或float。

​ 在list中的資料型別儲存的是資料的存放的位址,簡單的說就是指標,並非資料,這樣儲存乙個list就太麻煩了,例如list1=[1,2,3,4]需要4個指標和四個資料,增加了儲存和消耗cpu,而array1=numpy.array([1,2,3,4])只需要存放四個資料,讀取和計算更加方便,因此在做純數字操作時,建議使用array。

​ 也正因為列表可以存放不同型別的資料,因此列表中每個元素的大小可以相同,也可以不同,也就不支援一次性讀取一列,即使是對於標準的二維數字列表:

print(data[:,2])

typeerror: list indices must be integers or slices, not tuple

python 中的列表,陣列和矩陣

numpy使用ndarray物件來處理多維陣列,該物件是乙個快速而靈活的大資料容器。使用python列表可以儲存一維陣列,通過列表的巢狀可以實現多維陣列,那麼為什麼還需要使用numpy呢?numpy是專門針對陣列的操作和運算進行了設計,所以陣列的儲存效率和輸入輸出效能遠優於python中的巢狀列表,...

python的列表和元組 Python 列表和元組

lst1 中國 美國 日本 加拿大 lst2 中國 美國 日本 加拿大 lst1 1 2 美國 歐盟 print lst1 lst1 1 歐盟 print lst1 lst1 1 美國 歐盟 針對某一位列表元素,但賦值兩個字串,將以元組格式插入 print type lst1 1 print lst...

Python 多重列表解析裡for的順序

python 的列表解析list comprehension能讓語言更優雅,更可讀。多重列表解析可以將二維結構展平 flatten 比如有乙個二維陣列字典 data 想要拉伸成一維的線性結構,可以用二重迴圈方法 new for key in data forvalue in data key new...