美文网首页
不会就记系列之 Python 与 Pytorch

不会就记系列之 Python 与 Pytorch

作者: oneoverzero | 来源:发表于2020-03-04 11:52 被阅读0次

    Python 部分

    001. Python 中 sys.argv[] 的用法

    sys.argv[] 存储的是一个列表:

    • 其中 sys.argv[0] 指代的是运行的程序代码本身。例如当运行 python train.py 时,sys.argv[0] 就等于 train.py (数据类型为 str );
    • sys.argv[1] 开始,存储的都是额外的命令行参数。例如当运行 python train.py aaa bbb 时,sys.argv[1] 等于 aaasys.argv[2] 等于 bbb

    参考: https://www.cnblogs.com/aland-1415/p/6613449.html

    002. scipy.misc.imread() 函数
    003. copy()deepcopy()

    参考: https://www.cnblogs.com/Richardzhu/p/4723750.html

    Python 对象之间的赋值类似于 C 语言中的指针:b = a 是将指针 b 指向了指针 a 所指的内容。例如:

    a = [1, 2, 3, 4, ['x', 'y']]
    b = a # 将指针b指向指针a所指的内容
    print(b)
    # 输出:[1, 2, 3, 4, ['x', 'y']]
    

    copy.copy() 是浅拷贝,它拷贝的是父对象的内容以及父对象内部子对象的指针。这也就意味着,拷贝出来的内容不会随原父对象内容的改变而改变,但会随原子对象内容的改变而改变。例如:

    import copy
    a = [1, 2, 3, 4, ['x', 'y']]
    b = copy.copy(a)
    print('浅拷贝同时拷贝父对象和子对象:{}'.format(b))
    a.append(5)
    print('它会免疫父对象内容的改变:{}'.format(b))
    a[4].append('z')
    print('但会受到子对象内容的影响:{}'.format(b))
    

    输出如下:

    浅拷贝同时拷贝父对象和子对象:[1, 2, 3, 4, ['x', 'y']]
    它会免疫父对象内容的改变:[1, 2, 3, 4, ['x', 'y']]
    但会受到子对象内容的影响:[1, 2, 3, 4, ['x', 'y', 'z']]
    

    copy.deepcopy() 是深拷贝,它拷贝的是父对象的内容以及子对象的内容。因此,深拷贝既不会随父对象内容的改变而改变,也不会随子对象内容的改变而改变。例如:

    import copy
    a = [1, 2, 3, 4, ['x', 'y']]
    b = copy.deepcopy(a)
    print('深拷贝同时拷贝父对象和子对象:{}'.format(b))
    a.append(5)
    print('它既可以免疫父对象内容的改变:{}'.format(b))
    a[4].append('z')
    print('但又可以免疫子对象内容的改变:{}'.format(b))
    

    输出如下:

    深拷贝同时拷贝父对象和子对象:[1, 2, 3, 4, ['x', 'y']]
    它既可以免疫父对象内容的改变:[1, 2, 3, 4, ['x', 'y']]
    但又可以免疫子对象内容的改变:[1, 2, 3, 4, ['x', 'y']]
    

    004. 安装 SciPy

    SciPy 官网: https://scipy.org/install.html

    使用如下命令安装:

    python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
    

    005. defaultdict

    collections.defaultdict 是提供了默认值的字典:defaultdict 会为每个未知的 key 分配一个初始的 value ,从而即使直接从 defaultdict 中取键对应的值,也不会报错。而用默认的 dict 时,如果事先不为键分配一个初始值,则直接根据键取值会报错。

    参考: https://www.jianshu.com/p/26df28b3bfc8

    006. split() 函数

    详见: https://www.cnblogs.com/hjhsysu/p/5700347.html

    007. 如何将一个字符串分解成单个的字符

    参考: https://blog.csdn.net/qq_29750277/article/details/82023347

    使用 list 即可。例如:

    x = 'abc'
    y = list(x)
    print(y)
    

    输出:['a', 'b', 'c']

    上述字符串可以直接使用 sort 函数:

    a = 'cba'
    y = sorted(a)
    print(str(y))
    

    输出:['a', 'b', 'c']

    008. 解决 TypeError: unhashable type: 'list'

    参考: https://blog.csdn.net/you_are_my_dream/article/details/61616646

    字典的 key 不能是 listdict 这种 unhashable 类型的,可以使用 tupletuple 是可哈希的)。



    Pytorch 部分

    相关文章

      网友评论

          本文标题:不会就记系列之 Python 与 Pytorch

          本文链接:https://www.haomeiwen.com/subject/yprmlhtx.html