题目
1、创建一个包含12名学生成绩的一维数组
2、使用 reshape() 方法将一维数组重组为3x4的二维数组,同时修改第2个班级第1个学生的成绩 同时将修改后的二维数组和原来的一维数组打印出来。
3、使用 resize() 方法将一维数组重组为3x4的二维数组,同时修改第3个班级第2个学生的成绩 同时将修改后的二维数组和原来的一维数组打印出来。
代码
# 1、创建一个包含12名学生成绩的一维数组
import numpy as np
arr = np.random.randint(0, 100, 12)
print(arr)
# 2、使用 reshape() 方法将一维数组重组为3x4的二维数组,同时修改第2个班级第1个学生的成绩
# 同时将修改后的二维数组和原来的一维数组打印出来。
new_arr = arr.reshape((3, 4))
# 或 new_arr = arr.reshape((3, -1))
print(new_arr)
new_arr[1, 0] = 100
print("修改后的: \n", new_arr)
print("一维数组: \n", arr)
# 3、使用 resize() 方法将一维数组重组为3x4的二维数组,同时修改第3个班级第2个学生的成绩
# 同时将修改后的二维数组和原来的一维数组打印出来。
arr.resize((3, 4))
arr[2, 1] = 100
print(arr)
题目
1、生成一个 4x6 的随机销售数据数组,表示 4 个地区在过去 6 个月的销售额(随机数值可以在 10 到 100 之间)。
2、使用 ravel() 方法将二维数组按行展平为一维数组,然后修改第3个元素的值为99,最后,将展平数组和原来的二维数组打印出来。
3、使用 faltten() 方法将二维数组按列展平为一维数组,然后修改第3个元素的值为100,最后,将展平数组和原来的二维数组打印出来。
代码
# 1、生成一个 4x6 的随机销售数据数组,表示 4 个地区在过去 6 个月的销售额(随机数值可以在 10 到 100 之间)。
import numpy as np
arr = np.random.randint(10, 100, (4, 6))
print(arr)
# 2、使用 ravel() 方法将二维数组按行展平为一维数组,然后修改第3个元素的值为99,最后,将展平数组和原来的二维数组打印出来。
brr = arr.ravel()
brr[2] = 99
print(brr)
print(arr)
# 3、使用 faltten() 方法将二维数组按列展平为一维数组,然后修改第3个元素的值为100,最后,将展平数组和原来的二维数组打印出来。
crr = arr.flatten(order='F')
print(crr)
crr[2] = 100
print(crr)
print(arr)
题目
1、生成一个 3x5 的随机库存数据数组,表示 3 个仓库在过去 5 个月的库存量(库存数量在 50 到 500 之间)。
2、分别计算每个仓库的总库存量、每个月的总库存量。
3、计算每个仓库库存的乘积。
4、计算所有仓库的平均库存量。
5、计算所有仓库的库存方差和标准差,判断库存波动情况。
代码
# 1、生成一个 3x5 的随机库存数据数组,表示 3 个仓库在过去 5 个月的库存量(库存数量在 50 到 500 之间)。
import numpy as np
arr = np.random.randint(50, 500, (3, 5))
# 2、分别计算每个仓库的总库存量、每个月的总库存量。
print("每个仓库的总库存量", arr.sum(axis=1))
print("每个月的总库存量", arr.sum(axis=0))
# 3、计算每个仓库库存的乘积。
arr = arr.astype(np.int64)
print("每个仓库库存的乘积", arr.prod(axis=1))
# 4、计算所有仓库的平均库存量。
print("所有仓库的平均库存量", arr.mean())
# 5、计算所有仓库的库存方差和标准差,判断库存波动情况。
print("所有仓库的库存方差和标准差分别为: %f, %f" % (arr.var(), arr.std()))
题目
1、生成一个 4x6 的随机销售数据数组,表示 4 个地区在过去 6 个月的销售额(随机数值可以在 100 到 1000 之间)。
2、分别计算每个地区的最高销售额、最低销售额以及销售额的差值(峰值到峰值范围)。
3、找出每个地区销售额的中位数,并指出在哪个月份达到了最大值和最小值。
4、计算每个月份哪个地区的销售额最高和最低。
代码
# 1、生成一个 4x6 的随机销售数据数组,表示 4 个地区在过去 6 个月的销售额(随机数值可以在 100 到 1000 之间)。
import numpy as np
arr = np.random.randint(10, 1000, (4, 6))
# 2、分别计算每个地区的最高销售额、最低销售额以及销售额的差值(峰值到峰值范围)。
print("每个地区的最高销售额:", arr.max(axis=1))
print("每个地区的最低销售额:", arr.min(axis=1))
print("每个地区的销售额的差值:", arr.ptp(axis=1))
# 3、找出每个地区销售额的中位数,并指出在哪个月份达到了最大值和最小值。
print("每个地区销售额的中位数:", np.median(arr, axis=1))
print("每个地区销售额达到最大值的月份:", arr.max(axis=1) + 1)
print("每个地区销售额达到最小值的月份:", arr.min(axis=1) + 1)
# 4、计算每个月份哪个地区的销售额最高和最低。
print("每个月份销售额最高的地区:", arr.argmax(axis=0) + 1)
print("每个月份销售额最低的地区:", arr.argmin(axis=0) + 1)
题目
1、使用 NumPy 创建一个 4x3 的随机整数数组,模拟一个季度内四个地区每个月的销售额(单位:千元),数值范围在 10 到 100 之间,并打印输出。
2、使用 numpy.sort() 方法对销售数据进行排序:
- 按行排序,打印每个地区的销售额从低到高的排序结果。
- 按列排序,打印每个月的销售额从低到高的排序结果。
3、使用 view() 方法创建销售数据数组的视图,并将视图中第2个地区第3个月的销售额更改为 999。打印视图和原数组,观察修改的影响。
4、使用 copy() 方法创建销售数据数组的副本,打印副本并将副本中第2个地区第3个月的销售额更改为 888。打印视图和原数组, 观察修改的影响。
代码
# 1、使用 NumPy 创建一个 4x3 的随机整数数组,模拟一个季度内四个地区每个月的销售额(单位:千元),数值范围在 10 到 100 之间,并打印输出。
import numpy as np
arr = np.random.randint(10, 100, (4, 3), dtype=np.int64)
print(arr)
# 2、使用 numpy.sort() 方法对销售数据进行排序:
# 按行排序,打印每个地区的销售额从低到高的排序结果。
# 按列排序,打印每个月的销售额从低到高的排序结果。
print(np.sort(arr, axis=1))
print(np.sort(arr, axis=0))
## 3、使用 view() 方法创建销售数据数组的视图,并将视图中第2个地区第3个月的销售额更改为 999。打印视图和原数组,观察修改的影响。
v = arr.view()
v[1, 2] = 999
print(v)
print(arr)
# 4、使用 copy() 方法创建销售数据数组的副本,打印副本并将副本中第2个地区第3个月的销售额更改为 888。打印视图和原数组,
# 观察修改的影响。
c = arr.copy()
c[1, 2] = 888
print(c)
print(arr)
print(type(arr))
ls = arr.tolist()
print(ls)
print(type(ls))
题目
1、使用 NumPy 创建一个 4x3 的随机整数数组,模拟一个季度内四个地区每个月的销售额(单位:千元),数值范围在 10 到 100 之间,并打印输出。
2、使用 compress() 函数,从销售数据中提取出所有销售额大于 50 千元的值,并打印输出。
3、使用 tolist() 方法将原始销售数据数组转换为 Python 列表,并打印输出。
代码
# 1、使用 NumPy 创建一个 4x3 的随机整数数组,模拟一个季度内四个地区每个月的销售额(单位:千元),数值范围在 10 到 100 之间,并打印输出。
import numpy as np
arr = np.random.randint(10, 100, (4, 3), dtype=np.int64)
print(arr)
# 2、使用 compress() 函数,从销售数据中提取出所有销售额大于 50 千元的值,并打印输出。
ls = np.compress((arr>50).flatten(), arr)
print(ls)
# 3、使用 tolist() 方法将原始销售数据数组转换为 Python 列表,并打印输出。
ls = arr.tolist()
print(ls)
# range()
arr.T
题目
某景区记录了过去一周(7天)的游客数量,分别为国内游客和国际游客的数据。现在需要使用 NumPy 进行数据的读取、处理和保存, 完成对数据的水平、垂直拆分与合并,以及矩阵的转置操作。
1、使用 loadtxt() 函数将该 CSV 文件的数据加载到 NumPy 数组中。
2、使用 split() 函数将国内游客和国际游客的数据按前4天的数据和后3天的数据分别拆分开。 国内游客和国际游客的数据
3、使用 concatenate () 函数将前4天国内游客和国际游客的数据合并成一个新的数组。
4、使用 concatenate () 函数将后3天国内游客和国际游客的数据合并成一个新的数组。
5、使用 transpose() 函数将前4天的合并数据矩阵进行转置,使其行列互换。
6、使用 savetxt() 函数将前4天转置后的数据保存到一个新的 CSV 文件中。
代码
import numpy as np
# 1、使用 loadtxt() 函数将该 CSV 文件的数据加载到 NumPy 数组中。
NumPy = np.loadtxt(
"data7.csv",
encoding="utf-8",
delimiter=",",
skiprows=1,
dtype=np.int64
)
print(NumPy)
# 2、使用 split() 函数将国内游客和国际游客的数据按前4天的数据和后3天的数据分别拆分开。
# 国内游客和国际游客的数据
gnyk, gjyk = np.split(NumPy, 2, axis=1)
print("国内游客:\n", gnyk)
print("国外游客:\n", gjyk)
# 国内游客的前4天的数据和后3天的数据拆分
gn_pre, gn_post = np.split(gnyk, [4])
print("国内游客的前4天的数据:\n", gn_pre)
print("国内游客的后3天的数据:\n", gn_post)
# 国际游客的前4天的数据和后3天的数据拆分
gj_pre, gj_post = np.split(gjyk, [4])
print("国际游客的前4天的数据:\n", gj_pre)
print("国际游客的后3天的数据:\n", gj_post)
# 3、使用 concatenate () 函数将前4天国内游客和国际游客的数据合并成一个新的数组。
new_pre = np.concatenate([gn_pre, gj_pre], axis=1)
print("前4天国内游客和国际游客的数据:\n", new_pre)
# 4、使用 concatenate () 函数将后3天国内游客和国际游客的数据合并成一个新的数组。
new_post = np.concatenate([gn_post, gj_post], axis=1)
print("后3天国内游客和国际游客的数据:\n", new_post)
# 5、使用 transpose() 函数将前4天的合并数据矩阵进行转置,使其行列互换。
t_pre = np.transpose(new_pre)
print("前4天的合并数据矩阵进行转置:\n", t_pre)
# 6、使用 savetxt() 函数将前4天转置后的数据保存到一个新的 CSV 文件中。
np.savetxt(
"t_pre.csv", # 文件名称
t_pre, # 需要写入的数组对象
fmt="%d", # 整型字符串
delimiter=",", # 分隔符
encoding="utf-8",
header="前4天转置后的数据", # 标题行
)
题目
1、如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。 请编写一个函数判断是否为回文串,同时编写测试代码检验回文串。 (提示使用切片,注意列表索引的使用,例:“aba”是一个回文串, "abab"不是回文串)。
2、生成一个包含 20 个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素排序不变。 (提示:使用切片和 sort 排序函数。)
3、从键盘输入一个字符串,将小写字母全部转成大写字母,然后将其输出到test.txt文件中保存。
4、定义一个函数,传入3个整数,要求将其排序后输出。
代码
题目1:如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。
# 请编写一个函数判断是否为回文串,同时编写测试代码检验回文串。
# (提示使用切片,注意列表索引的使用,例:“aba”是一个回文串, "abab"不是回文串)。
# s = "aba"
# d = s[::-1]
# print(d)
# if s == d:
# print("s是回文串")
# else:
# print("s不是回文串")
def isHui(string):
string_t = string[::-1]
if string_t == string:
return True
else:
return False
a = 'aba'
if isHui(a):
print(a, "是回文串")
else:
print(a, "不是回文串")
# 题目2:生成一个包含 20 个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素排序不变。
# (提示:使用切片和 sort 排序函数。)
import random
ls = [random.randint(1, 100) for i in range(20)]
ls_order = ls[::2] # 提取出偶数下标对应的元素
print("20个随机整数:", ls)
print("偶数下标的数组:", ls_order)
ls_order.sort(reverse=True)
print("降序排序:", ls_order)
ls[::2] = ls_order
print("原数组:", ls)
# 题目3:从键盘输入一个字符串,将小写字母全部转成大写字母,然后将其输出到test.txt文件中保存。
# s = input("输入一个字符串")
# upper_s = s.upper()
# f = open("test.txt", "w")
# f.write(upper_s)
s = input("请输入一个字符串:")
s = s.upper()
with open("test.txt", "w") as file:
file.write(s)
# 题目4:定义一个函数,传入3个整数,要求将其排序后输出。
# def test1(num1,num2,num3):
# num = [num1,num2,num3]
# num.sort()
# print(num)
# test1(3,2,4)
def sortnum(a, b, c):
ls = [a, b, c]
ls.sort()
for i in ls:
print(i, end=" ")
sortnum(10, 5, 30)