立即學習:https://edu.csdn.net/course/play/6861/371096?utm_source=blogtoedu
性能比較:
import random
h = []
w = []
for i in range(100000):
h.append(random.randint(153,180))
w.append(random.uniform(51,88))
%%time
bmi = []
for i in range(100000):
bmi.append(w[i]/(h[i]/100) ** 2)
Wall time: 95 ms
H = np.array(h)
W = np.array(w)
%%time
BMI = W/(H/100)**2
Wall time: 31 ms
1、數組實現的運算要比列表要快。
2、通過數組運算能達到更好的效果
二維數組:
#基於嵌套列表創建二維數組
arr1 = np.array([[1,2,3,4],[2,3,4,5],[11,23,16,18],[100,101,102,103]])
#基於嵌套元組創建二維數組
arr2 = np.array(((1,2,3,4),(2,3,4,5),(11,23,16,18),(100,101,102,103)))
#二維數組的打印結果
print(arr1,'\n')
print(arr2)
[[ 1 2 3 4] [ 2 3 4 5] [ 11 23 16 18] [100 101 102 103]] [[ 1 2 3 4] [ 2 3 4 5] [ 11 23 16 18] [100 101 102 103]]
數組元素的返回
1、在一維數組中,列表的所有索引方法都可以使用在數組中,而且還可以使用間斷索引和邏輯索引。
2、在二維數組中,位置索引必須寫成[rows,cols]的形式,方括號的前半部分用於鎖定二維數組的行索引,後半部分用於鎖定數組的列索引。
3、如果要獲取二維數組的所有行和列元素,那麼對於的行索引或者列索引需要英文狀態的冒號表示。
#一維數組的索引有四種方式
arr1 = np.array([13,19,22,14,19,11])
#索引、切片
print(arr1[-1])
print(arr1[:3])
#間斷索引和邏輯索引
print(arr1[[1,3,5]])
print(arr1 <15)
print(arr1[arr1 < 15])
結果如下:
11 [13 19 22] [19 14 11] [ True False False True False True] [13 14 11]
#二維數組的索引
arr1=np.array([[1,2,3],[3,4,5],[2,34,5]])
#取出34
print(arr1[2,1])
#取出第二行
print(arr1[1,:])