参考传送门
.h5 或者 .hdf5文件读写
import h5py #导入工具包
import numpy as np
#HDF5的写入:
imgData = np.zeros((30,3,128,256))
f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f
f['data'] = imgData #将数据写入文件的主键data下面
f['labels'] = range(100) #将数据写入文件的主键labels下面
f.close() #关闭文件
#HDF5的读取:
f = h5py.File('HDF5_FILE.h5','r') #打开h5文件
f.keys() #可以查看所有的主键
a = f['data'][:] #取出主键为data的所有的键值
# os.walk()讲解,其中root='./', dirs对应./下的文件夹,files对应./下的文件列表
for root, dirs, files in os.walk('./'):break
# assure method in two values
assert method in ('filter', 'eval')
assert source_file != '' and target_file != '' and filtered_file != ''
# process on Pic
pics = [] if pics == 'NULL' else pics.split(';')
# 从右边开始找,找到第一个“_”,然后分割,得到两部分
rsplit("_",1)
# map操作,建一个空的list,之后往里面增加数据,只需要append就可以了
train_video_mapping=defaultdict(list)
# 可以同时获取key和value
for key,value in train_video_mapping.items()
# 多个list按照col堆叠
np.column_stack((,))
# 自定义排序
sorted(lst,key=lambda x: x[0])
#所有字符转小写
v.lower()
txt读写
# txt读取
f = open('savePath.txt')
for line in f.readlines():
split_data = line.strip().split(' ')
with open(metadata_filename, encoding='utf-8') as f:
self._metadata = [line.strip().split('|') for line in f]
# txt书写
output = open('path.txt', 'w')
output.write(imgPath + '\n')
output.close()
with open(os.path.join(out_dir, 'train.txt'), 'w', encoding='utf-8') as f:
f.write('|'.join([str(x) for x in m]) + '\n')
json读写
# json 读取
with open(trainLabel) as json_file: datas = json.load(json_file)
for item in datas:
imgPath = item['image_path']
imgName = item['image_name'].split('.')[0]
# json 书写
data = []
new_item = {'image_path': imgPath, "img_points":imgPoints}
data.append(new_item)
with open('path2points.json', 'w') as jsonFile:
jsonFile.write(json.dumps(data))
array操作
# 对list进行排序
data.sort(key=lambda x: len(x[1]), reverse=True)
images, captions = zip(*data)
######################################################################################################################################################
# array产生
array = np.array([[1,2,3],[2,3,4]]) #列表转化为矩阵
a = np.array([2,23,4],dtype=np.int) #增加类型的定义
a[np.newaxis,:]#将array变矩阵
a = np.arange(10,20,2)
a = np.linspace(1,10,20)
np.ones((3,4))
np.zeros((3,4))
np.sum(a) #全部加和
np.sum(a,axis=1) #只剩下axis=0的轴,也就是沿着axis=1相加
np.argmin(A) #返回最小值的下标
np.sort(A) #按照axis=0从小到大排序
np.clip(A,5,9) #将A修减
A[:,1:3] #读取矩阵
#其中row保存了A中每一行信息
for row in A:
print(row)
A.flatten() #将A弄成扁平的
C = np.concatenate((A,B,B,A),axis=0) #矩阵合并,沿着axis=0合并
np.array_split(A, 3, axis=1) #矩阵分解成3块,沿着axis=1
b = a.copy() #a和b无关联
a=b #a和b有关联
type(xxx) 返回xxx变量的类型
list & array
两者读取元素的方式不一样,list[:10]==array[:10,:,:,:]
矩阵的属性
ndim(维度个数),shape,size(元素个数)