1.map函数
map(function,data) #把data传进function里面执行结果返回
2.lambda函数
f = lambda x:x+1 #x是形参,x+1返回值
3.数组算术
arr = np.arange(6)
arr+1 #表示所有的数组元素都+1
4.广播机制
4.1行广播:从后往前看,列数相同,行数有一个只有一行,此时自动进行行广播:nm-1m
4.2列广播:从后往前看,行数相同,列数有一个只有一列,此时自动进行列广播:nm-n1
5.数组拼接
垂直拼接:
np.vstack(a,b) #垂直拼接,a,b数组必须要列一致`
水平拼接:
np.hstack(a,b) #水平拼接必须要行一致
6.数组切片
6.1.一维数组切片:
a1 = np.arange(9)
a1[2] #取出第三个数
6.2.二维数组切片
a2 = np.arange(24).reshape(4.6) #创建4行6列数组:0-23
6.2.1递归法
a2[1][1] #取出第二行第二列
6.2.2.逗号
a2[1,1] #取出第一行第一列,逗号前是行,逗号后是列
a2[1:3,2:6] #取出第一行
7.修改数组中的值
a3 = np.arange(24).reshape(4,6)
a3[:,1] = 0
7.1.通过布尔值索引筛选
a3[a3<10]
a3[(a3>2)&(a3<8)] #注意优先级,&和<>号平级,需要加括号
8.np.where
np.where(condition,x,y) #满足条件,执行x,不满足执行y
作业:
np.arange(16).reshape(4,4)与2做减法
np.arange(16).reshape(4,4)与np.arange(16,32).reshape(4,4)做加法运算
np.arange(8).reshape(2,4)与np.arange(4)运算吗?
np.arange(8).reshape(2,4)与np.arange(4).reshape(1,4)运算吗?
np.arange(8).reshape(2,4)与np.arange(4).reshape(4,1)运算吗?
import numpy as np
arr1 = np.arange(16).reshape(4,4)
arr1-2
arr2 = np.arange(16).reshape(4,4)
arr3 = np.arange(16,32).reshape(4,4)
arr2-arr3
arr2+arr3
a4 = np.arange(8).reshape(2,4)
a5 = np.arange(4).reshape(4,1)#不能进行运算,不符合广播机制
请完成以下基础练习:
• 构建数组: np.arange(16).reshape(4,4)
• 选择 第3列
• 选择 1-3 列
• 选择 2,4 列
• 选择 4,7 两个点 将值改为 0
• 过滤出 <5 的值
a2 = np.arange(16).reshape(4,4)
a2[:,2]
a2[:,0:3]
a2[:,1:4:2]
a2[(1,1),(0,3)] = 0
a2[a2<5]
通过以下代码读取📎scores.csv 数据
np.loadtxt("scores.csv",delimiter=",",skiprows=1)
score_data
并且完成以下练习:
• 筛选出 成绩 大于60 并且 小于80 的数据
• 筛选出 成绩 大于80 并且 小于90 的数据
• 筛选出 成绩 大于90 的数据
score_data=np.loadtxt("scores.csv",delimiter=",",skiprows=1)
score_data[(score_data>60)&(score_data<80)]
score_data[(score_data>800)&(score_data<90)]
score_data[score_data>90]