Python编写数据分析小程序

任务要求

任务描述

本关任务:假设你正在为一个数据分析团队编写一个小程序。用户将输入一系列数字,用空格分隔。你需要使用numpy库将这些数据存储在numpy数组中。接着,程序应该计算并输出以下内容:数组的平均值、数组的标准差、数组中的最大值和最小值。此外,你还需要展示数组的切片操作、堆叠操作以及拆分操作。

例子说明

测试输入:

  1. 1 2 3 4 5

预期输出:

  1. 平均值: 3.0
  2. 标准差: 1.4142135623730951
  3. 最大值: 5
  4. 最小值: 1
  5. 切片操作结果: [2 3 4]
  6. 垂直堆叠结果:
  7. [[1 2 3]
  8. [4 5 6]]
  9. 水平堆叠结果: [1 2 3 4 5 6]
  10. 水平拆分结果: [array([1]), array([2]), array([3])]
  11. 垂直拆分结果: [array([1, 2, 3]), array([4, 5, 6])]

相关知识

为了完成本关任务,你需要掌握:

  1. 如何使用numpy创建和操作数组
  2. 如何使用numpy进行基本的数学计算
  3. 如何进行数组的切片与索引
  4. 如何进行数组的堆叠
  5. 如何使用Numpy进行数组的拆分
1. 背景知识
  • Numpy是Python的一个库,提供了大量的数学函数来操作这些数组。Numpy的核心功能是"ndarray",一个存储单一数据类型的多维数组。
2. numpy数组的创建

可以使用numpy的array函数从常规Python列表或元组中创建数组。得到的数组类型是从Python列表中元素的类型推导出来的。

  1. import numpy as np
  2. a = np.array([1,2,3])
  3. print(a)
3. numpy的基本操作
  • 使用shape查看数组的形状
  • 使用dtype查看元素类型

  1. import numpy as np
  2. a = np.array([(1,2,3),(4,5,6)])
  3. print(a.shape)
  4. print(a.dtype)
4. numpy的数学计算
  • 使用mean()计算平均值
  • 使用std()计算标准差
  • 使用max()和min()查找最大值和最小值
  1. import numpy as np
  2. a = np.array([1,2,3,4,5])
  3. print(np.mean(a))
  4. print(np.std(a))
  5. print(np.max(a))
  6. print(np.min(a))
5. numpy数组的切片与索引

可以使用切片来获取数组的一个子集。例如:

  1. a = np.array([1,2,3,4,5])
  2. print(a[1:4]) # 输出 [2 3 4]
6. numpy数组的堆叠

可以使用vstack和hstack函数来垂直或水平地堆叠两个数组。

  1. a = np.array([1,2,3])
  2. b = np.array([4,5,6])
  3. print(np.vstack((a,b))) # 垂直堆叠
  4. print(np.hstack((a,b))) # 水平堆叠
7. Numpy的拆分

可以使用array_split和vsplit函数来水平或垂直地拆分数组。

  1. a = np.array([[1,2,3],[4,5,6]])
  2. print(np.array_split(a,3)) # 水平拆分
  3. print(np.vsplit(a,2)) # 垂直拆分

最终代码

import numpy as np

# 用户输入数据

data = input().split()

########input your code here#########

#转换为numpy数组

arr = np.array(data, dtype=int)

# 计算平均值

mean_val = np.mean(arr)

print(f"平均值: {mean_val}")

# 计算标准差

std_val = np.std(arr)

print(f"标准差: {std_val}")

#计算最大最小值并输出

max_val = np.max(arr)

min_val = np.min(arr)

print(f"最大值: {max_val}")

print(f"最小值: {min_val}")

# 切片操作

sliced_arr = arr[1:4]

print(f"切片操作结果: {sliced_arr}")

# 堆叠操作

vstacked_arr = np.vstack((arr, arr + 3))

hstacked_arr = np.hstack((arr, arr + 3))

print("垂直堆叠结果:")

print(vstacked_arr)

print(f"水平堆叠结果: {hstacked_arr}")

# 拆分操作

hsplitted_arr = np.array_split(arr,3)

vsplitted_arr = np.vsplit(vstacked_arr,2)

print("水平拆分结果:", hsplitted_arr)

print("垂直拆分结果:", vsplitted_arr)

########end of your code #########


易错细节

  • TypeError: _vhstack_dispatcher() takes 1 positional argument but 2 were given
    
对应问题及处理:少加括号,补加

vstacked_arr = np.vstack((arr, arr + 3))

hstacked_arr = np.hstack((arr, arr + 3))




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值