前言

岁数大了,知识又学杂了,再加上阳了以后,总感觉记性不好,特来整理一些没什么用的python脚本片段snippet。大概包含

  1. 一、二维数组切片、
  2. list中字符串转float/int、
  3. txt删除空行、
  4. 初始化x坐标,从1-100等、
  5. plt在同一张图上画多个折线图
    不定期更新吧。

等更新到一定数量会放在github上~欢迎收藏

代码

废话不多说,直接上代码

python数组切片(一维和二维)

切片规则:对于一维array或者list a, 切片规则为sliced_a = a[start : stop: step]

1
2
3
4
import numpy as np
a = np.array([1,2,3,4,5,6,7,8])
sliced_a = a[1::2] # 省略stop就是到末尾
print(sliced_a) # [2 4 6 8]

对于二维数组,和一维相似,只不过多个维度而已,来,看例子

1
2
3
4
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
sliced_a = a[0::3, ::] # 逗号前是第一个维度,逗号后为第二个维度。规则与一维数组一致
print(sliced_a) # [[1 2 3][10,11,12]]

list中str转float/int

当你有个list,list中每个元素都是str类型,你想其中的所有元素都转换成float或者int类型

1
2
3
ls = ['0.23', '0.54', '0.15']
new_ls = list(map(eval, ls))
print(new_ls) # [0.23, 0.54, 0.15]

list中float/int转str

1
2
3
ls = [0.23, 0.54, 0.15]
new_ls = list(map(str, ls))
print(new_ls) # ['0.23', '0.54', '0.15']

txt删除空行

1
2
3
4
5
6
7
8
9
10
11
12
# coding:utf-8

file1 = open('data1.txt', 'r', encoding='utf-8') # 打开要去掉空行的文件
file2 = open('data2.txt', 'w', encoding='utf-8') # 生成没有空行的文件

for line in file1.readlines():
if line == '\n':
line = line.strip('\n') # strip()表示删除掉数据中的换行符
file2.write(line)

file1.close()
file2.close()

初始化x坐标,从1-100等

1
x = list(range(0, 100))  # 0-100是左闭右开欧

初始化一个空的二维数组

1
two_dimension_empty_array = [[]*1]*42

plt在同一张图上画多个折线图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
import matplotlib.pyplot as plt

# 1.准备数据
mat = np.random.random((4, 3))
print(mat)

# 2.开始画折线图
fig = plt.figure()
ax = fig.add_subplot(111)
x = list(range(0, 3)) # 横坐标为初始化从0到2的数字, 注意这里的x的维度要和mat中每一个元素的维度一致
for line in mat: # 纵坐标遍历要画的曲线list
ax.plot(x, line) # 循环绘制
plt.show()