文章目录
一、numpy
1、读写文件
1>二进制文件读写
import numpy as np
"""
二进制文件、文本文件
"""
arr1 = np.arange(16).reshape(4, 4)
print(arr1)
"""
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
"""
# 1、数据保存,写文件 np.save 默认保存为二进制文件------仅保存单个数组
# 参数1:保存路径和文件名,可以不写后缀,默认为npy
# 参数2:要保存的数组
np.save("arr1", arr1)
# 2、读文件,加载文件. np.load------查看文件
# 参数1:路径和文件名,必须写后缀
arr_new = np.load("arr1.npy")
print(arr_new)
"""
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
"""
# 3、数据保存,可以将多个数组保存到一个文件中 np.savez
# 多个数组保存到npz文件,默认被组织为字典的形式
# key:arr_0 val1:第一个数组
# key:arr_1 val2:第二个数组
# ....
# 参数1:保存路径和文件名,可以不写后缀,默认为npz
# 其他参数:要保存的多个数组名
arr2 = np.zeros((2, 2))
np.savez("arr_all", arr1, arr2)
# 保存时,可以指定key
# np.savez("arr_all", a=arr1, b=arr2)
# 4、读取npz文件---np.load
# 参数:路径和文件名
arr_all = np.load("arr_all.npz")
print(arr_all) # <numpy.lib.npyio.NpzFile object at 0x000001F2F24A66A0>
# print无法查看,借助for循环查看
for tmp in arr_all:
print(tmp)
# arr_0 arr_1
# (默认结果是保存时给的key值,要是在保存时指定key值,则结果为自己指定的key值)
# 因为按照字典的方式被保存,所以可以使用字典的方式访问
# 按照字典的访问方式
# print("第一个数组", arr_all["arr_0"])
# print("第二个数组", arr_all["arr_1"])
2>文本文件读写
# 文本文件的读写(txt, csv(以逗号为分隔符))
# 写文件、保存文件,数组保存txt文件中 np.savetxt
# 参数1 保存的路径和文件名
# 参数2:保存的数组
# 参数3:保存的格式 fmt,默认为科学计数法'%1.8e'
# 参数4:分割符,delimiter, 默认是空格
np.savetxt("arr1.txt", arr1, fmt="%d", delimiter=",")
np.savetxt("arr1.csv", arr1, fmt="%d", delimiter=",")
# csv以,作为分隔符,用excel表格打开的时候,数据各占一个格,要是没用,分隔符,则一行数据存在一个excel格中
# 读文件、加载文件,np.loadtxt将文本文件 加载 为一个numpy数组
# 读文件的分隔符 需要和保存时一致 dtype默认float
res = np.loadtxt("arr1.txt", delimiter=",", dtype=int)
print("res\n", res, type(res))
"""
res
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]] <class 'numpy.ndarray'>
"""
2、数组去重
import numpy as np
# 去重 np.unique; 去重的同时 做升序排序
# 1、一维数组的去重
arr1 = np.array([1, 2, 3, 4, 6,