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])) # 输出: [7 5 3 9](空格分隔)
a.shape # numpy中可以用shape来查看数组的形状
zeros = np.zeros((2, 3)) # 创建一个2行3列的全零矩阵
zeros
ones = np.ones((3,)) # 创建一个形状为(3,)的全1数组
ones
# 顺序数组的创建
arange = np.arange(1, 10) # 创建一个从1到10的数组
arange
# 创建一个2*2的随机数组c,区间为[0,1)
c = np.random.rand(2,2)
c
import numpy as np
np.random.seed(42) # 设置随机种子以确保结果可重复
# 生成10个语文成绩(正态分布,均值75,标准差10)
chinese_scores = np.random.normal(75, 10, 10).round(1)
# round(1) 对生成的随机数进行四舍五入,保留一位小数。
# 找出最高分和最低分及其索引
max_score = np.max(chinese_scores)
max_index = np.argmax(chinese_scores)
min_score = np.min(chinese_scores)
min_index = np.argmin(chinese_scores)
print(f"所有成绩: {chinese_scores}")
print(f"最高分: {max_score} (第{max_index}个学生)")
print(f"最低分: {min_score} (第{min_index}个学生)")
import numpy as np
scores = np.array([5, 9, 9, 11, 11, 13, 15, 19])
sum = 0
for score in scores:
sum += score
print(sum)
scores += 1 # 学习一下这个写法,等价于 scores = scores + 1
sum = 0
for score in scores:
sum += score
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) # 计算两个数组的除法,对应的位置相除即可
a * b # 矩阵点乘,ipynb文件中不使用print()函数会自动输出结果,这是ipynb文件的特性
a @ b.T # 矩阵乘法,3*2的矩阵和2*3的矩阵相乘,得到3*3的矩阵,b.T代表b的转置
arr1d = np.arange(10) # 数组: [0 1 2 3 4 5 6 7 8 9]
arr1d
# 1. 取出数组的第一个元素。
arr1d[0]
# 取出数组的最后一个元素。-1表示倒数第一个元素。
arr1d[-1]
# 3. 取出数组中索引为 3, 5, 8 的元素。
# 使用整数数组进行索引,可以一次性取出多个元素。语法是 arr1d[[index1, index2, ...]]。
arr1d[[3, 5, 8]]
# 切片取出索引
arr1d[2:6] # 取出索引为2到5的元素(不包括索引6的元素,取左不取右)
# 取出数组中从头到索引 5 (不包含 5) 的元素。
# 使用切片 slice [:stop]
arr1d[:5]
# 取出数组中从索引 4 到结尾的元素。
# 使用切片 slice [start:]
arr1d[4:]
# 取出全部元素
arr1d[:]
# 7取出数组中所有偶数索引对应的元素 (即索引 0, 2, 4, 6, 8)。
# 使用带步长的切片 slice [start:stop:step]
arr1d[::2] # [:]代表取出全部元素,[::2]代表去除全部元素且步长为2
# 数组:
arr2d = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
arr2d
# 取出第 1 行 (索引为 1) 的所有元素。
#
# 使用索引 arr[row_index, :] 或 arr[row_index]
arr2d[1, :]
# 也可以省略后面的 :
arr2d[1]
# 取出第 2 列 (索引为 2) 的所有元素。
# 使用索引 arr[:, column_index]
arr2d[:, 2]
# 取出位于第 2 行 (索引 2)、第 3 列 (索引 3) 的元素。
# 使用 arr[row_index, column_index]
arr2d[2, 3]
# 取出由第 1 列和第 3 列组成的新数组。
# 使用整数数组作为列索引 arr[:, [col1, col2, ...]]
arr2d[:, [1, 3]]
# 取出一个 2x2 的子矩阵,包含元素 6, 7, 10, 11。
# 使用切片 slice arr[row_start:row_stop, col_start:col_stop]
arr2d[1:3, 1:3]
arr3d = np.arange(3 * 4 * 5).reshape((3, 4, 5))
arr3d
# 选择特定的层
# 使用整数数组 [0, 2] 作为第一个维度 (层) 的索引
arr3d[1, :, :]
arr3d[1, 0:2, :]
arr3d[1, 0:2, 2:4]
打卡:@浙大疏锦行