python numpy,list操作

2020-03-24  本文已影响0人  啊啊啊啊啊1231

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)

上一篇下一篇

猜你喜欢

热点阅读