写在前面:

疫情期间在家无聊,写了一个简易的常用数组工具
功能模块主要是排序/计算
当然排序可以选择升序及降序排列
为了方便用户,加入了删除/查找/插入等额外的功能
计算模块则包括了求和/求积/标准差以及百分位数等功能
我觉得可以覆盖一些常用的数组处理
如果你不想用一些复杂的大型软件,这个会是一个很好的小工具~
对于软件的交互,我还是设计的比较简便的
全程敲数字键就ok了,很好上手!

编辑后:

在之前的基础上根据意见加入了文件读取的功能,用户可以直接在指定文件夹下新建一个data.txt来进行计算,这个在数据量大的情况下免去了一个个手动输入的麻烦,功能是一样的

from functools import reduce
import numpy
import os
import sys
for k in range(100):print('欢迎使用常用数组工具')select = input('请选择操作模式:\n1:手动输入\n2:读取文件\n请输入对应功能代码:')if select == '1':print('手动输入模式:\n1:排序\n2:计算\n3:退出')a = input('请输入您想要使用的功能代码:')# 数据的正反向排序if a == '1':cishu = input('请输入您想排序的数值个数:')cishu2 = int(cishu)data = []for i in range(cishu2):shuju = input('请输入您想排序的第%d个数值:' % (i+1))data.append(shuju)reshape = [int(i) for i in data]b = input('您想要升序还是降序\n1:升序\n2:降序\n请输入您想要使用的功能代码:')if b == '1':result = sorted(reshape)  # 正向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)elif b == '2':result = sorted(reshape)  # 正向排序函数result.reverse()   # 反向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)else:print('指令错误,请检查后重试')for p in range(100):c = input('是否需要继续操作\n1:插入\n2:修改\n3:删除\n4:退出\n5:查询\n请输入您想要使用的功能代码:')if c == '1':xindata = input('请输入您想插入的值:')weizhi = input('请输入您想插入的位置:')weizhi1 = int(weizhi)reshape.insert(weizhi1-1, xindata)print(reshape)reshape1 = [int(l) for l in reshape]p = input('您想要升序还是降序,分别以1/2表示:')if p == '1':result2 = sorted(reshape1)  # 正向排序函数print(result2)elif p == '2':result2 = sorted(reshape1)  # 正向排序函数result2.reverse()  # 反向排序函数print(result2)else:print('指令错误,请检查后重试')elif c == '2':xin = input('请输入您想修改的值:')di = input('请输入您想修改值的所在位置:')di1 = int(di)xin2 = int(xin)reshape[di1-1] = xin2s = input('您想要升序还是降序,分别以1/2表示:')if s == '1':result = sorted(reshape)  # 正向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)elif s == '2':result = sorted(reshape)  # 正向排序函数result.reverse()  # 反向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)else:print('指令错误,请检查后重试')elif c == '3':xin3 = input('请输入您想删除的数据位置:')xin4 = int(xin3)reshape3 = reshape.pop(xin4-1)g = input('您想要升序还是降序,分别以1/2表示:')if g == '1':result = sorted(reshape)  # 正向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)elif g == '2':result = sorted(reshape)  # 正向排序函数result.reverse()  # 反向排序函数print('输入数组为:', reshape)print('排序后数组为:', result)else:print('指令错误,请检查后重试')elif c == '4':breakelif c == '5':gg = input('请输入您想要查询的具体数值:')xin = [str(i) for i in reshape]if gg in xin:zhi = xin.index(gg)print('您查询的数值的首次出现位置为:', (zhi+1))juti = [i for i, x in enumerate(xin) if x == gg]  # enumerate是遍历函数,产生一个list,数据类型为intjuti1 = [i + 1 for i in juti]print('您查询的数值的所有出现位置为:', juti1)if gg not in xin:print('列表无查询项,请重试')else:print('指令错误,请检查后重试')elif a == '3':exit()elif a == '2':xuan = input('请选择您想要进行的计算\n1:求和\n2:求积\n3:平均值\n4:标准差\n5:百分位数\n请输入您想要使用的功能代码:')if xuan == '1':one = input('请输入您想要计算的数值个数:')cishu3 = int(one)data2 = []for i in range (cishu3):two = input('请输入第%d个数值:' % (i+1))data2.append(two)reshape2 = [int(i) for i in data2]print('输入列表为:', reshape2)print('列表元素之和为:', sum(reshape2))  # 直接列表元素求和elif xuan == '2':three = input('请输入您想要计算的数值个数:')cishu4 = int(three)data3 = []for i in range(cishu4):four = input('请输入第%d个数值:' % (i+1))data3.append(four)reshape3 = [int(i) for i in data3]print('输入列表为:', reshape3)jie = reduce(lambda x, y: x * y, reshape3)  # reduce函数的顺序累积print('列表元素乘积:', jie )elif xuan == '3':five = input('请输入您想要计算的数值个数:')cishu5 = int(five)data4 = []for i in range(cishu5):four = input('请输入第%d个数值:' % (i + 1))data4.append(four)reshape4 = [int(i) for i in data4]print('输入列表为:', reshape4)ping = numpy.average(reshape4)  # numpy中的average函数print('列表元素平均值:', ping)elif xuan == '4':six = input('请输入您想要计算的数值个数:')cishu5 = int(six)data5 = []for i in range(cishu5):four = input('请输入第%d个数值:' % (i + 1))data5.append(four)reshape4 = [int(i) for i in data5]print('输入列表为:', reshape4)cha = numpy.std(reshape4)  #numpy中的std函数print('列表元素标准差为:', cha)elif xuan == '5':seven = input('请输入您想要计算的数值个数:')cishu6 = int(seven)data6 = []for i in range(cishu6):five = input('请输入第%d个数值:' % (i + 1))data6.append(five)a = [int(i) for i in data6]aa = input('请输入您想要的百分位:')aaa = int(aa)baifen = numpy.percentile(a, aaa)print('列表的%d%%位数为:' % aaa, baifen)else:print('指令错误,请检查后重试!')else:print('指令错误,请检查后重试!')if select == '2':print('文件读取模式:\n1:排序\n2:计算\n3:退出')a = input('在将需读取的名为data.txt的文件放入当前文件夹后,输入您想要使用的功能代码:')filename = 'data.txt'if a == '1':if os.path.exists(filename):with open(filename, 'r') as file_to_read:lines = file_to_read.read()datamat = lines.split()changdu = len(datamat)reshape = [int(i) for i in datamat]datamat2 = numpy.array(reshape)print('当前文件内数据量:%d' % changdu)b = input('您想要升序还是降序\n1:升序\n2:降序\n请输入您想要使用的功能代码:')if b == '1':result = sorted(datamat2)  # 正向排序函数print('输入数组为:', datamat2)print('排序后数组为:', result)elif b == '2':result = sorted(datamat2)  # 正向排序函数result.reverse()  # 反向排序函数print('输入数组为:', datamat2)print('排序后数组为:', result)else:print('指令错误,请检查后重试!')else:print('data.txt在当前目录下不存在,请检查后重试!')elif a == '2':if os.path.exists(filename):with open(filename, 'r') as file_to_read:lines = file_to_read.read()datamat = lines.split()  # 空格括号内空参数changdu = len(datamat)reshape = [int(i) for i in datamat]datamat2 = numpy.array(reshape)print('当前文件内数据量:%d' % changdu)xuan = input('请选择您想要进行的计算\n1:求和\n2:求积\n3:平均值\n4:标准差\n5:百分位数\n请输入您想要使用的功能代码:')if xuan == '1':print('输入列表为:', datamat2)print('列表元素和:', sum(datamat2))elif xuan == '2':print('输入列表为:', datamat2)jie = reduce(lambda x, y: x * y, datamat2)  # reduce函数的顺序累积;lambda是匿名函数print('列表元素乘积:', jie)elif xuan == '3':print('输入列表为:', datamat2)print('列表元素平均值:', numpy.average(datamat2))elif xuan == '4':print('输入列表为:', datamat2)print('列表元素标准差:', numpy.std(datamat2))elif xuan == '5':aa = input('请输入您想要的百分位:')aaa = int(aa)print('列表的%d%%位数为:' % aaa, numpy.percentile(datamat2, aaa))else:print('指令错误,请检查后重试!')else:print('data.txt在当前目录下不存在,请检查后重试!')else:print('指令错误,请检查后重试!')else:print('指令错误,请检查后重试!')

python的常用数组工具相关推荐

  1. Python+Opencv常用小工具集合

    目录 一.小工具1-URL转化为图片 二.小工具2-鼠标响应 参考资料 注意事项 一.小工具1-URL转化为图片 1.代码实现 # coding=utf-8 # 导入python包 import nu ...

  2. 常用音频工具介绍与汇总

    音频cluster 常用音频工具介绍与汇总 音频文章 音频网站记录 python工具包 常用音频工具介绍与汇总 音频文章 来源 说明 链接 ESC-50 说明文档中有关于各种深度学习网络在数据集上的表 ...

  3. Python中常用的数据分析工具(模块)有哪些?

    本期Python培训分享:Python中常用的数据分析工具(模块)有哪些?Python本身的数据分析功能并不强,需要安装一些第三方的扩展库来增强它的能力.我们课程用到的库包括NumPy.Pandas. ...

  4. python数据分析与发展常用哪些软件_分享一下Python数据分析常用的8款工具

    Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...

  5. 数据分析的基础:前言、概念、应用、分析方法、分析工具、基本流程、Python数据分析常用模块

    文章目录 一.前言 1.数据价值 2.数据分析之路 二.数据分析的概念 三.数据分析的应用 四.数据分析方法 1.概念 2.详解 五.数据分析工具 六.数据分析的基本流程 七.Python数据分析常用 ...

  6. java 类数组_Java常用类-字符串、日期类、算法及数组工具类等

    大家好,乐字节的小乐又和大家见面了.这次要给大家讲述的是Java常用类. 主要有以下知识点: Ø 字符串相关类(String .StringBuffer.StringBuilder) Ø 算法及数组工 ...

  7. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

    python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...

  8. 常用类 (一) ----- Arrays数组工具类

    相关文章: <常用类 (一) ----- Arrays数组工具类> <常用类 (二) ----- Math类> <常用类 (三) ----- BigDecimal和Big ...

  9. python的主流开发工具排名,最常用的python开发工具

    有哪些值得推荐的 Python 开发工具? 第一款:最强终端 Upterm它是一个全平台的终端,可以说是终端里的IDE,有着强大的自动补全功能,之前的名字叫做:BlackWindow. 有人跟他说这个 ...

最新文章

  1. java怎么保存文件_java里数据怎么保存到硬盘或TXT文件里去
  2. Zabbix-3.0.3结合Grafana-3.1.0给你想要的绘图
  3. C# 窗体最小化的托盘/系统通知区域(转)
  4. SAP HR信息类型
  5. 月入过万的副业你要不要?不需要编程知识,不限男女,不限学历
  6. 异步编程模型(C#5.0系列)
  7. laravel框架学习(三)
  8. MTK平台LCM驱动加载流程
  9. Optisystem中器件的学习(3-WDM Multiplexers Library/Optical Fibers Library/Amplifiers Library/Fiters Librar)
  10. 支付网关清算及退款流程
  11. 计算机英语(王艺)译文(unit6-unit12)
  12. 自然语言处理(NLP)
  13. 《Spring实战(第5版)》Spring in Action, Fifth Edition 官方在线阅读及源码下载
  14. 软件测试工程师未来十年的职业规划
  15. 基因数据处理54之bwa-mem运行paird-end(1千万条100bp的reads)
  16. 【Javaweb】【答卷】萌狼蓝天大二上学期期末Javaweb考试复习卷(一)
  17. python 解析域名
  18. python使用pd.to_numeric()方法将数据转为数字类型int或float
  19. 串ababaaababaa的next和串ababaabab的nextval
  20. 有哪些高性价比的LoRa模块?

热门文章

  1. 相对分子质量 c编程
  2. 微信群、朋友圈和订阅号的流量到底有什么差异?
  3. 【转】开发者需要了解的领域特定语言(DSL)
  4. 天然气阶梯是按年还是按月_天然气阶梯价划分时间的节点怎么计算,是以每年为一个单位吗...
  5. 读书笔记之:《心流 最优体验心理学》 米哈里·契克森米哈赖 第一章、第二章
  6. 关于word2016中mathtype无法使用以及“由于宏安全设置,无法找到宏或宏已被禁用”的解决方案
  7. 天蝎座性格最精确的解析
  8. mysql 5.7.14 winx64_mysql-5.7.14-winx64解压版配置
  9. java 使用 POI 操作 XWPFDocumen 创建和读取 Office Word 文档基础篇
  10. 了解return的用法