• python常用代码总结2


    1、列表的常规追加元素、追加列表操作

    (1)列表追加多个元素,比如追加0-9

    1. ls = []
    2. ls.extend(list(range(10)))
    3. ls
    4. Out[20]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    (2)列表追加多个相同的元素,比如追加10个0

    1. ls1 = []
    2. for i in range(10):
    3. ls1.append(0)
    4. ls1
    5. Out[23]: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    列表推导式 

    1. ls2 = []
    2. ls2.extend([0 for _ in range(10)])
    3. ls2
    4. Out[27]: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    1. In[57]: list4 = [i for _ in range(2) for i in range(1, 4)]
    2. ...: print(list4)
    3. ...:
    4. [1, 2, 3, 1, 2, 3]
    5. In[58]: list4 = [i for i in range(1, 4) for _ in range(2)]
    6. ...: print(list4)
    7. ...:
    8. [1, 1, 2, 2, 3, 3]

    (3列表追加一个已有列表

    1. ls3 =[]
    2. expected_list = [1.2,2.3,3.4,5.6]
    3. ls3.extend(expected_list)
    4. ls3
    5. Out[31]: [1.2, 2.3, 3.4, 5.6]

    (4)列表中追加一个二维列表的一行或一列

    1. ls4 = []
    2. expected_list = [[1.2,2.3],[3.4,5.6],[7.0,8.0]] #3行2列
    3. ls4.extend(expected_list[1]) #追加第二行
    4. ls4
    5. Out[44]: [3.4, 5.6]

    (5)列表中可以追加不同长度的列表

    1. lstwo = []
    2. In[49]:
    3. lstwo.append(ls1)
    4. lstwo.append(ls2)
    5. lstwo.append(ls3)
    6. lstwo.append(ls4)
    7. lstwo
    8. Out[54]:
    9. [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    10. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    11. [],
    12. [3.4, 5.6]]

    2、numpy array 读写文件

    读取混合数据类型的数据,我们可以object的类型追读写文件。读Object对象的时候必须开启allow_pickle =True.(允许使用Python pickles保存、读取对象数组)

    1. x = np.array([[1, 1, 1], ['a', 'b', 'c'],[1,'a',0.654321]], dtype=object)
    2. np.save('my_data',x)
    3. y = np.load('my_data.npy',allow_pickle=True)

    (1)numpy.save()函数
    保存一个数组到一个二进制的文件中,保存格式是.npy

    参数介绍:
    numpy.save(file, arr, allow_pickle=True, fix_imports=True)

    file:文件名/文件路径
    arr:要存储的数组
    allow_pickle:布尔值,允许使用Python pickles保存对象数组(可选参数,默认即可)
    fix_imports:为了方便Pyhton2中读取Python3保存的数据(可选参数,默认即可)

    2)numpy.savez
    这个同样是保存数组到一个二进制的文件中,但是厉害的是,它可以保存多个数组到同一个文件中,保存格式是.npz,它其实就是多个前面np.save的保存的npy,再通过打包(未压缩)的方式把这些文件归到一个文件上,不行你去解压npz文件就知道了,里面是就是自己保存的多个npy.。

    参数介绍:

    numpy.savez(file, *args, **kwds)

    file:文件名/文件路径
    *args:要存储的数组,可以写多个,如果没有给数组指定Key,Numpy将默认从'arr_0','arr_1'的方式命名
    kwds:(可选参数,默认即可)

    1. x2= np.arange(10)
    2. x3= np.random.randn(10)
    3. np.savez('my_data',x2,x3)
    4. npzfile=np.load('my_data.npz')
    5. x21=npzfile['arr_0']
    6. x31=npzfile['arr_1']

     你可以不适用Numpy默认给数组的Key,而是自己给数组命名有意义的Key,这样就可以不用自己指定变量名'arr_0','arr_1'了

    1. x2= np.arange(10)
    2. x3= np.random.randn(10)
    3. np.savez('my_data',x2=x2,x3=x3)
    4. npzfile=np.load('my_data.npz')
    5. x2=npzfile['x2']
    6. x2=npzfile['x3']

    3、numpy.save()函数直接存储复杂dict,包含列表,字符串,数值,然后再读取。

    1. dict1 ={'name': ['jack1', 'jack2', 'jack3', 'jack4'],
    2. 'sex': ['男', '女', '男', '女'],
    3. 'grade': [99.1, 99.2, 99.3, 99.4]}
    4. dict1
    5. Out[39]:
    6. {'name': ['jack1', 'jack2', 'jack3', 'jack4'],
    7. 'sex': ['男', '女', '男', '女'],
    8. 'grade': [99.1, 99.2, 99.3, 99.4]}
    9. np.save('dict.npy', dict1)
    10. load_dict = np.load('dict.npy', allow_pickle=True).item()
    11. load_dict
    12. Out[42]:
    13. {'name': ['jack1', 'jack2', 'jack3', 'jack4'],
    14. 'sex': ['男', '女', '男', '女'],
    15. 'grade': [99.1, 99.2, 99.3, 99.4]}

    4、用savez,在一个文件里,写多个变量(dict,list)并进行解析
     

    1. dict2 = {'name': ['jack1', 'jack2', 'jack3', 'jack4'],
    2. 'sex': ['男', '女', '男', '女'],
    3. 'grade': [99, 99, 99, 99.4]}
    4. dict1 = {'name': ['tom', 'jack2', 'jack3', 'jack4'],
    5. 'sex': ['男', '女', '男', '女'],
    6. 'grade': [99, 99, 99, 99.4]}
    7. list1 = [1, 2, 3]
    8. list2 = [1, 'two', 3]
    9. list3 = [1, 'two', 3, {'name': 'tom'}]
    10. tuple1 = (3,2,1)
    11. tuple2 = ('one','two','three')
    12. np.savez('my_data', dict1=dict1, dict2=dict2, list1=list1, list2=list2, list3=list3,tuple1 = tuple1, tuple2 = tuple2)
    13. my_data = np.load('my_data.npz', allow_pickle=True)
    14. dict11 = my_data['dict1'].item()# 字典解析
    15. dict22 = my_data['dict2'].item()
    16. list11 = my_data['list1'].tolist() # list解析
    17. list22 = my_data['list2'].tolist()
    18. list33 = my_data['list3'].tolist()
    19. tuple11 = tuple(my_data['tuple1']) # tuple解析
    20. tuple22 = tuple(my_data['tuple2'])

    结果输出:

     

  • 相关阅读:
    JavaScript使用对象
    ESP32-WROOM-32 ESP32 wifi模块基本参数与引脚定义
    VQGAN理论加代码一对一详解,小白向解析
    文生视频Sora模型发布,是否引爆AI芯片热潮
    无代码开发平台通讯录导出入门教程
    Java之线程相关应用实现
    银纳米团簇-荧光Ag25团簇以及衍生团簇(直径1-2nm)
    SVG: 可伸缩的矢量图形
    货物从内地到香港的选择
    【爬虫逆向】Python逆向采集猫眼电影票房数据
  • 原文地址:https://blog.csdn.net/qimo601/article/details/128124561