立即学习:https://edu.youkuaiyun.com/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,:])