因为前天说了SHAP,这里涉及到数据形状尺寸问题,所以需要在这一节说清楚,后续的神经网络我们将要和他天天打交道。
知识点:
- numpy数组的创建:简单创建、随机创建、遍历、运算
- numpy数组的索引:一维、二维、三维
- SHAP值的深入理解
首先是数组的简单创建和分清楚数组和列表的区别
import numpy as np
a = np.array([2,4,6,8,10,12]) # 创建一个一维数组
b = np.array([[2,4,6],[8,10,12]]) # 创建一个二维数组
print(a)
print(b)
print([7, 5, 3, 9]) # 输出: [7, 5, 3, 9](逗号分隔)
print(np.array([7, 5, 3, 9])) 输出分隔为空格
随机创建
np.random.randint(a,b) | [a,b]整数 | "int"结尾表示整数 | 生成随机索引/标签 |
random.random() | [0,1)浮点数 | 纯"random"最基础 | 简单概率模拟
np.random.rand() | [0,1)均匀分布 | "rand"=random+uniform | 蒙特卡洛模拟
np.random.randn() | 标准正态分布(μ=0,σ=1) | 多一个"n"=normal | 数据标准化/深度学习初始化
数组的遍历和运算
import numpy as np
scores = np.array([5, 9, 9, 11, 11, 13, 15, 19])
scores += 1 # 学习一下这个写法,等价于 scores = scores + 1
sum = 0
for i in scores: # 遍历数组中的每个元素
sum += i
print(sum)
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([[7, 8], [9, 10], [11, 12]])
print(a)
print(b)
print(a * b)
print(a / b)
print(a @ b.T)
数组的索引
一维数组的索引,用arrange创建一个等差数列
arrld = np.arrange(10)
print(arrld[0])
print(arrld[-1])
print(arrld[: :2])
print(arrla[2 :6])
二维数组的索引
arr2d = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
arr2d[2:3]
arr2d[1]
arr2d[1:3, 1:3]
arr2d[:, 2]
三维数组的索引
arr3d = np.arrange(3*4*5).reshap(3, 4, 5)
一共60个元素,从0-59
3代表3个子二维数组,也是三层的意思,4和5代表行和列
arr3d[1, 1:2, 0:3]
256

被折叠的 条评论
为什么被折叠?



