因为前天说了shap,这里涉及到数据形状尺寸问题,所以需要在这一节说清楚,后续的神经网络我们将要和他天天打交道。
知识点:
- numpy数组的创建:简单创建、随机创建、遍历、运算
- numpy数组的索引:一维、二维、三维
- SHAP值的深入理解
作业:今日知识点比较多,好好记忆下
import numpy as np
zeros = np.zeros((2, 3))
zeros
a = np.array([2,4,6,8,10,12]) # 创建一个一维数组
b = np.array([[2,4,6],[8,10,12]]) # 创建一个二维数组
print(a)
print(b)
a.shape
b.shape
# 分清楚列表和数组的区别
print([7, 5, 3, 9]) # 输出: [7, 5, 3, 9](逗号分隔)
print(np.array([7, 5, 3, 9])) # 输出: [7 5 3 9](空格分隔)
arange = np.arange(1, 10) # 创建一个从1到10的数组
arange # 输出: array([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(arange) # 输出: [1 2 3 4 5 6 7 8 9]
import numpy as np
np.random.seed(42) # 设置随机种子以确保结果可重复
# 生成10个语文成绩(正态分布,均值75,标准差10)
chinese_scores = np.random.normal(75, 10, 10).round(1)
# 找出最高分和最低分及其索引
max_id = np.argmax(chinese_scores)
min_id = np.argmin(chinese_scores)
print(f"最高分: {chinese_scores[max_id]},索引: {max_id}")
print(f"最低分: {chinese_scores[min_id]},索引: {min_id}")
print(f"所有成绩: {chinese_scores}")
import numpy as np
scores = np.array([5, 9, 9, 11, 11, 13, 15, 19])
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)
a * b # 矩阵点乘,对应位置相乘,得到3*2的矩阵
a @ b.T # 矩阵乘法,3*2的矩阵和2*3的矩阵相乘,得到3*3的矩阵
arr2d = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
arr2d
arr2d[0, :]
arr2d[:, 0]
arr2d[1,1]
arr2d[[0, 2], :]
arr2d[[0, 2]]
arr2d[:, [1, 3]]
arr2d[1:3, 1:3] #不包3
#去理解shap那里的数组和维度
