Python之数据分析总结
将文本打开读取文本内八位的十六进制数值,进行分割,将其转换为十进制数值并输出,并绘图。import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_min
·
- 将文本打开读取文本内八位的十六进制数值,进行分割,将其转换为十进制数值并输出,并绘图。
import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 file_object = open('thefile.txt') try: file_context = file_object.read() finally: file_object.close() d =file_context.split(' ') print (d) data =list() for c in d: if (c != '\n') & (c != ''): data.append(int(c,16)) print (data) x = range(0,len(data))#传入两个参数时,第一个参数作为起始位,第二个参数为结束位,第三个参数是步进值(默认为1) y = data plt.xlabel('时间') plt.ylabel('deal_car') plt.plot(x,y,'bo') #添加'o'则变为散点图,否则各点自动连线 plt.show()
- 从文本数据中依据数据帧头提取转换四字节16进制数据,转换为十进制进行绘制表。
import ctypes import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 fp = open('test.txt') content = fp.read() frame_state = 0 d = content.split(' ') data = list() while len(d): #必须保证文本内最后的光标紧跟着数据,不能有空格,否者此代码会卡死 if(frame_state == 0): if(len(d) >= 3): if (d[0] == 'FF') and (d[1] == 'A5') and (d[2] == '5A'): frame_state = 1 del d[0:3] else: del d[0] frame_state = 0 elif (len(d) >= 4): dd = d[0]+d[1]+d[2]+d[3] print(dd) data.append(int(dd,16)- 4294967296)#若是负数则需要减去2的32次方,正数则不需要 frame_state += 1 if(frame_state == 11): frame_state = 0 del d[0:4] else: break print (data) x = range(0,len(data))#传入两个参数时,第一个参数作为起始位,第二个参数为结束位,第三个参数是步进值(默认为1) y = data plt.xlabel('时间') plt.ylabel('deal_car') plt.plot(x,y,'b*') #添加'o'则变为散点图,否则各点自动连线 plt.show()
- 单个数值进制转换
ec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec)) print("转换为八进制为:", oct(dec)) print("转换为十六进制为:", hex(dec)) print(int('110',2)) #把二进制的110输出成十进制
- 负整数十进制转换到十六进制
def tohex(val, nbits): return hex((val + (1 << nbits)) % (1 << nbits)) print (tohex(-28,32)) print (tohex(28,32))
- 补码
#求补码(1字节)代表的负数 第一步:把这个补码当作无符号数来读取,得到结果是255 第二步:把第一步的结果减去256,得到的差就是所求的负数。 这里是1个字节,减去的应该是2的8次方, 如果是2个字节,减去的应该是2的16次方, 如果是4个字节,减去的应该是2的32次方。 #求负数(1字节)的补码 第一步:负数加上256 -128+256=128 第二步:把上面的结果用二进制表示1000 0000这就是负数的补码
- 整型与浮点型的转换
(1)将4个字节的十进制转换成一个float数值
(2)将4个字节的十六进制转换成一个float数值[负数也适用]import struct x = [67, 20, 121, 71] a =struct.unpack('<f', struct.pack('4b', *x))[0]
(3)一个float变量转成内存的4个字节十进制from ctypes import * def convert(s): #将十六进制转换为浮点数 i = int(s, 16) cp = pointer(c_int(i)) fp = cast(cp, POINTER(c_float)) return fp.contents.value print (convert("41499499")) #或者 import ctypes def convert(s): #将十六进制转换为浮点数 i = int(s, 16) # convert from hex to a Python int cp = ctypes.pointer(ctypes.c_int(i)) # make this into a c integer fp = ctypes.cast(cp, ctypes.POINTER(ctypes.c_float)) # cast the int pointer to a float pointer return fp.contents.value # dereference the pointer, get the float print (convert("41499499")) # returns 1.88999996185302734375E1
(4)将float变量转换为十六进制import struct byte = struct.pack('f', 523432.523424) ls = [i for i in byte] print(ls)
import struct byte = struct.pack('f', 13.4 ) byte = byte[: : -1] #反序 data =list() for i in byte: data.append(hex(i)) print (data)
- struct模块打包二进制数据
f=open('s_data.bin','wb') import struct s=b'Allen' #/字符串前面b不可缺少 data=struct.pack('>i5si',7,s,8) print(data) f.write(data) f.close() a,b,c=struct.unpack('>i5si',data) print(a,b,c) b=b.decode('utf-8')#要将bytes字符串转换为unicode字符串 print(b) f2=open('b.txt','w') f2.write(b) f2.close()
- 字符转ascii码
pw = input(':')#输入需转换为ascii码的字符串 temp = [] #创建加密字符空列表 for i in pw: #字符转ascii码(因为不能直接将字符串直接转换为ascii码,所以只能一个一个转换) x = hex(ord(i)) #将pw中的每一个字符转换为ascii码[转换为8进制改为oct,16进制hex] temp.append(x) #将每一个字符添加到列表中 print(temp) #ASCII输出 print('%s '*len(temp)%tuple(temp))#字符串输出
- 将一个字符串转换为相应的_进制串
def str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s]) str_to_hex("hello") def hex_to_str(s): return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]]) def str_to_bin(s): return ' '.join([bin(ord(c)).replace('0b', '') for c in s]) def bin_to_str(s): return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
- 将一个字符串转换为相应的_进制串
#从界面输入框中获取字符 data = input.get() #删除所有空格会转换为list模式 data1 = data.split( ) #从list模式—>str模式 data2 = ''.join(data1) #若想str模式——>list模式 list = list(str名) #在str模式下可以将字符按照十六进制格式发送:cd -----> 0xcd binascii.a2b_hex(senddata2) #串口将十六进制格式的字符发送出 N = self.ser.write(binascii.a2b_hex(senddata2)) N为发送字符数目
- Tkinter做界面之颜色
#FFC0CB—— Pink 粉红
#DC143C—— Crimson 深红/猩红
#FFF0F5——LavenderBlush 淡紫红
#DB7093——PaleVioletRed 弱紫罗兰红
#FF69B4——HotPink 热情的粉红
#FF1493——DeepPink 深粉红
#C71585——MediumVioletRed 中紫罗兰红
#DA70D6——Orchid 暗紫色/兰花紫
#D8BFD8——Thistle 蓟色
#DDA0DD——Plum 洋李色/李子紫
#EE82EE——Violet 紫罗兰
#FF00FF——Magenta 洋红/玫瑰红
#FF00FF——Fuchsia 紫红/灯笼海棠
#8B008B——DarkMagenta 深洋红
#800080——Purple 紫色
#BA55D3——MediumOrchid 中兰花紫
#9400D3——DarkViolet 暗紫罗兰
#9932CC——DarkOrchid 暗兰花紫
#4B0082——Indigo 靛青/紫兰色
#8A2BE2——BlueViolet 蓝紫罗兰
#9370DB——MediumPurple 中紫色
#7B68EE——MediumSlateBlue 中暗蓝色/中板岩蓝
#6A5ACD——SlateBlue 石蓝色/板岩蓝
#483D8B——DarkSlateBlue 暗灰蓝色/暗板岩蓝
#E6E6FA——Lavender 淡紫色/熏衣草淡紫
#F8F8FF——GhostWhite 幽灵白
#0000FF——Blue 纯蓝
#0000CD——MediumBlue 中蓝色
#191970——MidnightBlue 午夜蓝
#00008B——DarkBlue 暗蓝色
#000080——Navy 海军蓝
#4169E1——RoyalBlue 皇家蓝/宝蓝
#6495ED——CornflowerBlue 矢车菊蓝
#B0C4DE——LightSteelBlue 亮钢蓝
#778899——LightSlateGray 亮蓝灰/亮石板灰
#708090——SlateGray 灰石色/石板灰
#1E90FF——DodgerBlue 闪兰色/道奇蓝
#F0F8FF——AliceBlue 爱丽丝蓝
#4682B4——SteelBlue 钢蓝/铁青
#87CEFA——LightSkyBlue 亮天蓝色
#87CEEB——SkyBlue 天蓝色
#00BFFF——DeepSkyBlue 深天蓝
#ADD8E6——LightBlue 亮蓝
#B0E0E6——PowderBlue 粉蓝色/火药青
#5F9EA0——CadetBlue 军兰色/军服蓝
#F0FFFF——Azure 蔚蓝色
#E0FFFF—— LightCyan 淡青色
#AFEEEE——PaleTurquoise 弱绿宝石
#00FFFF——Cyan 青色
#00FFFF——Aqua 浅绿色/水色
#00CED1——DarkTurquoise 暗绿宝石
#2F4F4F——DarkSlateGray 暗瓦灰色/暗石板灰
#008B8B——DarkCyan 暗青色
#008080——Teal 水鸭色
#48D1CC——MediumTurquoise 中绿宝石
#20B2AA——LightSeaGreen 浅海洋绿
#40E0D0——Turquoise 绿宝石
#7FFFD4——Aquamarine 宝石碧绿
#66CDAA——MediumAquamarine 中宝石碧绿
#00FA9A——MediumSpringGreen 中春绿色
#F5FFFA——MintCream 薄荷奶油
#00FF7F——SpringGreen 春绿色
#3CB371——MediumSeaGreen 中海洋绿
#2E8B57——SeaGreen 海洋绿
#F0FFF0——Honeydew 蜜色/蜜瓜色
#90EE90——LightGreen 淡绿色
#98FB98——PaleGreen 弱绿色
#8FBC8F——DarkSeaGreen 暗海洋绿
#32CD32——LimeGreen 闪光深绿
#00FF00——Lime 闪光绿
#228B22——ForestGreen 森林绿
#008000——Green 纯绿
#006400——DarkGreen 暗绿色
#7FFF00——Chartreuse 黄绿色/查特酒绿
#7CFC00——LawnGreen 草绿色/草坪绿
#ADFF2F——GreenYellow 绿黄色
#556B2F——DarkOliveGreen 暗橄榄绿
#9ACD32——YellowGreen 黄绿色
#6B8E23——OliveDrab 橄榄褐色
#F5F5DC——Beige 米色/灰棕色
#FAFAD2——LightGoldenrodYellow 亮菊黄
#FFFFF0—— Ivory 象牙色
#FFFFE0——LightYellow 浅黄色
#FFFF00——Yellow 纯黄
#808000——Olive 橄榄
#BDB76B——DarkKhaki 暗黄褐色/深卡叽布
#FFFACD——LemonChiffon 柠檬绸
#EEE8AA——PaleGoldenrod 灰菊黄/苍麒麟色
#F0E68C——Khaki 黄褐色/卡叽布
#FFD700——Gold 金色
#FFF8DC——Cornsilk 玉米丝色
#DAA520——Goldenrod 金菊黄
#B8860B——DarkGoldenrod 暗金菊黄
#FFFAF0——FloralWhite 花的白色
#FDF5E6——OldLace 老花色/旧蕾丝
#F5DEB3——Wheat 浅黄色/小麦色
#FFE4B5——Moccasin 鹿皮色/鹿皮靴
#FFA500——Orange 橙色
#FFEFD5——PapayaWhip 番木色/番木瓜
#FFEBCD——BlanchedAlmond 白杏色
#FFDEAD——NavajoWhite 纳瓦白/土著白
#FAEBD7——AntiqueWhite 古董白
#D2B48C——Tan 茶色
#DEB887——BurlyWood 硬木色
#FFE4C4——Bisque 陶坯黄
#FF8C00——DarkOrange 深橙色
#FAF0E6——Linen 亚麻布
#CD853F——Peru 秘鲁色
#FFDAB9——PeachPuff 桃肉色
#F4A460——SandyBrown 沙棕色
#D2691E——Chocolate 巧克力色
#8B4513——SaddleBrown 重褐色/马鞍棕色
#FFF5EE——Seashell 海贝壳
#A0522D——Sienna 黄土赭色
#FFA07A——LightSalmon 浅鲑鱼肉色
#FF7F50——Coral 珊瑚
#FF4500——OrangeRed 橙红色
#E9967A——DarkSalmon 深鲜肉/鲑鱼色
#FF6347——Tomato 番茄红
#FFE4E1——MistyRose 浅玫瑰色/薄雾玫瑰
#FA8072——Salmon 鲜肉/鲑鱼色
#FFFAFA——Snow 雪白色
#F08080——LightCoral 淡珊瑚色
#BC8F8F——RosyBrown 玫瑰棕色
#CD5C5C——IndianRed 印度红
#FF0000——Red 纯红
#A52A2A——Brown 棕色
#B22222——FireBrick 火砖色/耐火砖
#8B0000——DarkRed 深红色
#800000——Maroon 栗色
#FFFFFF——White 纯白
#F5F5F5——WhiteSmoke 白烟
#DCDCDC——Gainsboro 淡灰色
#D3D3D3—— LightGrey 浅灰色
#C0C0C0——Silver 银灰色
#A9A9A9——DarkGray 深灰色
#808080——Gray 灰色
#696969——DimGray 暗淡灰
#000000——Black 纯黑'''

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)