疏锦行Python打卡 DAY 16 数组的常见操作和形状

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]

打卡:@浙大疏锦行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值