pycharm tips

批量更改变量名,就在该变量名上shift+f6

../data

两个点,就是上一级目录,一个点就是当前目录

unhashable type: 'list'

使用set进行去重

a = [1,2,2,3,4]

set(a)是可以的

可是如果a = [[1,2],2,2]就不行,set 进行哈希的时候,需要每个元素都是可哈希的,

可变类型的数据不可哈希,如list,字典:同值不同址,不同值同址

数值、字母、字符串、数字、元组不可变:同值同址,不同值不同址

类变量的值将在这个类的所有实例之间共享

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self


q = [(1,2),(2,3)]
df = pd.DataFrame(q,columns=['id','question'])

# data = DataFrame(np.arange(16).reshape(4,4), index=['Ohio', 'Colorado', 'Utah', 'New York'], columns=['one', 'two', 'three', 'four'])

print(df.loc[:1])


df = pd.DataFrame([[1,2,3,4,5]], columns=['标准问题id','标准问题','相似问题','答案','相似问题ID'])
df1 = pd.DataFrame([[1,2,3,4,6]], columns=['标准问题id','标准问题','相似问题','答案','相似问题ID'])
df.append(df1)
print(df.append(df1))

df.append之后,不会像list一样直接加进去,必须使用
df = df.append()

import numpy as np
vec = np.zeros(10)

import random
random_list = np.random.randint(0,10,4)
print(random_list)
vec[random_list] = 1
print(vec)

生成一个随机位置为1,其他位置为0的矩阵

def contrast_enhance(vec1,vec2):

vec1[1]= 1
vec2[1] = 3

arr1 = [1,2,3,4]
arr2 = [2,2,2]
contrast_enhance(arr1,arr2)

print(arr1)
print(arr2)

如何得到np.array里非0元素个数?
使用
count1 = np.sum(vec1!=0)
count2 = np.sum(vec2!=0)
count = count1+count2
print(count)
dist = count**0.5
sim = 1.0 / (1.0 + dist)
return sim

如果要使用array.nonzero(),这个函数是返回下标的,不能用sum,应该用array.size
vec1_temp = np.array([1,2,3,4,5,6])
print(np.sum(vec1_temp!=0))
vec = vec1_temp.nonzero() #会返回一个tuple tuple[0]是array, tuple[1]是类型
print(vec)
print(vec[0].size)

如果用len(array),返回的是行数


交集
a = set(['我','爱','北','京'])
b = set(['爱','北','京'])
c = a&b
print(c)

判断集合为空

if {}:
print(1)
else:
print(0)

select * from pospal_kf.similarquestion where questionid in(1820,1531)

time8 = time.time()
print('time8-time7')
print(time8-time7)
result = list(set(result))
simi_q_list = sorted(result, key=lambda tup: tup[3], reverse=True)
time9 = time.time()
print('time9-time8')
print(time9-time8)

python 中,sorted函数的速度非常非常快,具体原因要问一下。

a = np.random.randint(1,100,10000000)
time1 = time.time()
count = np.sum(a!=0)
time2 = time.time()
print(time2-time1)
len(a.nonzero()[0])
time3 = time.time()
print(time3-time2)

0.014009952545166016
0.04614996910095215

事实证明,使用np.sum的方法比较快

pandas  去除空行

df = pd.read_excel('答案书写.xlsx', sheet_name = 'Sheet1')

print(df.dropna(subset=['答案']))

阈值thres = 

维度 axis,

subset 是一个list,如果按行去除,这个list的元素就是非空的column

原文地址:https://www.cnblogs.com/yjybupt/p/9961549.html