十个经验点总结(3)

  • python中的持续化存储pickle
    有些时候数据分析或者处理得到了一批处理后的数据,不论是列表还是其他的类型的数据,但是又没有必要特地去建一个数据库数据表或者建立csv文件进行存储,可以使用pickle模块进行数据的存储
import pickle 
'''
preprocessing ...
#假设进行深度学习中数据预处理得到了X和Y,分别表示数据集标签集
'''
X = [....]
Y = [....]
data_file_path = 'data.data' #保存的pickle数据文件路径,后缀名只是一个形式
label_file_path = 'label.data'
with open(data_file_path,'wb') as f: # 使用二进制进行写入
    pickle.dump(X, f)  #dump函数表示将数据倒入文件中
with open(label_file_path,'wb') as f:
    pickle.dump(Y, f)
-----------------------------------------------------------------------------
with open('data.data', 'rb') as f: #二进制读取数据
  X = pickle.load(f)    # load函数表示将装载文件中数据到变量X中
with open('label.data', 'rb') as f:
  Y = pickle.load(f) 


  • 导入模块后,可以使用dir(module_name)来查看模块中的函数(这一点对之后编写项目很有帮助)
import math
print(dir(math))

['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',
'acos', 'acosh', 'asin',....(未显示完全) ]

  • 如何获取文件后缀名 手打
def get_extension(file_path):
    dot = file_path.rfind('.')
# str.rfind(str, beg=0 end=len(string)) 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
    if dot == -1:
        return ''
    else:
        return file_path[dot+1:]

  • 一个有趣的现象
food = ' apple pie'
food[-3:0]  输出?
答案: ''   
原因: 从下标-3向右找不到下标0,所以为空字符串

  • 自引用列表,从这个方面我们可以理解到列表中的元素并不是包含其值,而是指向某一个值
fruits = ['apple','pear', 'banana']
fruits[1] = fruits
fruits  #输出 ['apple', [...], 'banana']
fruits[1] # 输出 ['apple', [...], 'banana']

[...] 表示的意思为python能够自动识别自引用,而不会傻傻的一直迭代打印列表

  • python中的进度条使用
import time
from tqdm import tqdm

# tqdm是进度条中的的一个方法,里面存一个可迭代对象
for i in tqdm(range(1, 100)):
    # 执行任务
    time.sleep(0.01)

  • python中的isinstance(object,type) 和 type(object) 辨析
>>> issubclass(bool,int)
True
>>> isinstance(True, int)
True
>>> if type(True) == bool:
...     print('this is bool')
... 
this is bool

type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
=> bool是int的子类
True False 如果进行instance判断的话  也是可以判断成int的

衍生出来的一个妙用
a = [True,True,True,False]
sum(a)  = 3


  • 关于取模和取余的区别
    取余:rem(a,b) -> 尽可能让商向0靠近
    取模:mod(a,b)->尽可能让商向负无穷靠近
    因此:
python中的规定:
Python 中取模运算 % 结果与除数同符号
>>> 7%-3
-2
>>> -7%3
2

  • python的类型注解: 增强可读性
def add(x,y):
  return x+y

def add(x:int, y:int) -> int:
    return x + y

  • 小常识
    形式参数: formal parameter
    实际参数: actual argument
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容