numpy总结帖(包含json和txt的保存)

参考传送门

.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(元素个数)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值