python numpy,list操作
pickle写操作
with open('../item_desc_smallnvjc.pkl','wb') as in_data_item_desc:
pickle.dump(item_desc,in_data_item_desc,pickle.HIGHEST_PROTOCOL)
pickle读操作
with open('jap_word_list.pkl','rb') as in_data_jap_word_list:
jap2vec = pickle.load(in_data_jap_word_list)
取平均操作
np.mean(matrix_a, axis=0)
建立new matrix
numpy.zeros((x, y))
找到列表中满足某些条件的元素
a = [0, 1, 2, 3, 4, 0, 2, 3, 6, 7, 5]
selected = [x for x in a if x in range(1, 5)] # 找到a中属于[1,5)中的元素
numpy.ndarray一系列骚操作
reshape numpy.ndarray dimensions
train_words.shape : (128,30,10)
aa=np.reshape(train_words,(128*30*10,-1))
output dimension: (38400,1)
aa_squeeze = np.squeeze(aa)
numpy.ndarray index操作
bb=aa_squeeze[aa_squeeze>100000]
numpy 指定连续的iteration
iteration = np.arange(start_index, end_index, increasing_step)
iteration = np.arange(0,iterations,1)
随机打乱list序列,然后从其中取batchsize大小的index元素来feed进model
start_list = list(range(0,train_data.size,args.batch_size))
np.random.shuffle(start_list)
其中第一行代码生成range object, which can not be called by len() or range.shape function
os.listdir(): 输出的是相对路径。
比如'/home/zhantiantian/images'中有'/home/zhantiantian/images/1'和'/home/zhantiantian/images/2'两个文件夹。这个函数的输出是'1' 和'2'。
但是glob.glob(os.path.join(path_to_dir, '*.jpg'))
输出的则是绝对路径。即文件夹中.jpg文件的绝对路径。
print(item_id) 和item_id直接输入到命令行里是不一样的结果。
比如item_id = '6176277’。前者的输出是6176277,而后者的输出是‘6176277‘。
python写文件处理代码时,特别当文件夹比较多时,处理的文件数量较多时,可以采用
print('processing {}/{}\n'.format(user_id, len(user_dirs))实时更新处理的进度
# 参数意思分别 是从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布
a1 = np.random.choice(a=5, size=3, replace=False, p=None)
print(a1)
# 非一致的分布,会以多少的概率提出来
a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
print(a2)
# replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么出来的三个数都不一样,如果是
True的话, 有可能会出现重复的,因为前面的抽的放回去了。
python knowledge graph的方法加入元素tuple list.append((1,2))其中(1,2)是一个tuple。
def construct_kg(kg_np):
print('constructing knowledge graph ...')
kg = dict()
for triple in kg_np:
head = triple[0]
relation = triple[1]
tail = triple[2]
# treat the KG as an undirected graph
if head not in kg:
kg[head] = []
kg[head].append((tail, relation))
if tail not in kg:
kg[tail] = []
kg[tail].append((head, relation))
return kg
二维numpy.ndarray如何遍历矩阵里面的元素?
kg_np.shape: (715971, 3)
kg_np[0]: array([0, 0, 3])
python复制粘贴代码:
shutil.copyfile(src,dst)#文件到文件的拷贝,其中dst必须是一个文件
命令行输入参数选择
import argparse
np.random.seed(666)
parser = argparse.ArgumentParser()
parser.add_argument('--targetdir', type=str, default='../ACMMM2020', help='which target dir to specify')
args = parser.parse_args()
去除字符串中的'\u3000'
item_name = item_name.replace(u'\u3000',u' ')
提取某字符串'()'中间的文字内容。ps:这其中括号可以为()英文括号,或者()中文括号。用字符匹配方式
中文括号:
import re
p1 = re.compile(r'[(](.*?)[)]', re.S)
print(re.findall(p1, string))
import re
p1 = re.compile(r'[(](.*?)[)]', re.S)
print(re.findall(p1, string))
匹配两个字符串中间的数值 ('max_acc'和'max_acc'之间的数值)
acc = re.findall(r"max_acc: (.+?)\n", result_line)
auc = re.findall(r"max_auc(.+?),max_acc", result_line)