我手头的基本任务是
a)读取一些制表符分隔的数据.
b)做一些基本的预处理
c)对于每个分类列,用于LabelEncoder创建映射.这有点像这样
mapper={}
#Converting Categorical Data
for x in categorical_list:
mapper[x]=preprocessing.LabelEncoder()
for x in categorical_list:
df[x]=mapper[x].fit_transform(df.__getattr__(x))
Run Code Online (Sandbox Code Playgroud)
其中df是pandas数据帧,categorical_list是需要转换的列标题列表.
d)训练分类器并使用将其保存到磁盘 pickle
e)现在在另一个程序中,加载了保存的模型.
f)加载测试数据并执行相同的预处理.
g)LabelEncoder's用于转换分类数据.
h)该模型用于预测.
现在我的问题是,步骤g)是否正常工作?
正如文档LabelEncoder所说
It can also be used to transform non-numerical labels (as long as
they are hashable and comparable) to numerical labels.
Run Code Online (Sandbox Code Playgroud)
那么每个条目每次都会哈希到完全相同的值吗?
如果不是,有什么好办法可以解决这个问题.有没有办法重新编码编码器的映射?或者与LabelEncoder完全不同的方式?
我有一个元组列表,其中包含字符串例如:
[('this', 'is', 'a', 'foo', 'bar', 'sentences')
('is', 'a', 'foo', 'bar', 'sentences', 'and')
('a', 'foo', 'bar', 'sentences', 'and', 'i')
('foo', 'bar', 'sentences', 'and', 'i', 'want')
('bar', 'sentences', 'and', 'i', 'want', 'to')
('sentences', 'and', 'i', 'want', 'to', 'ngramize')
('and', 'i', 'want', 'to', 'ngramize', 'it')]
Run Code Online (Sandbox Code Playgroud)
现在我希望连接一个元组中的每个字符串以创建一个空格分隔字符串列表.我使用以下方法:
NewData=[]
for grams in sixgrams:
NewData.append( (''.join([w+' ' for w in grams])).strip())
Run Code Online (Sandbox Code Playgroud)
哪个工作得很好.
但是,我拥有的列表有超过一百万个元组.所以我的问题是这种方法足够有效还是有更好的方法来做到这一点.谢谢.
我遇到了这个问题,你给了一个数字N作为输入,然后是N个数字(其中3 <= N <= 2500).这些N数字是算术级数(大小N+1)的一部分,从中删除了一个数字.所以任务是找到丢失号码.例如
5
1 3 5 9 11
Run Code Online (Sandbox Code Playgroud)
输出是 7
我提出了两种方法,第二种方法通过所有测试用例,但第一种方法在某些(隐藏)情况下失败.
首先,我将解释第二种方法
方法二
Let diff=(last_number-first_number)/N
//Considering 0 based indexing
for i=0 to (N-2)
if( array[i+1] is not equal to (array[i]+diff))
print (array[i]+diff)
break
Run Code Online (Sandbox Code Playgroud)
该方法通过了所有测试用例.现在我实现的第一种方法和某些测试用例失败的方法如下
方法I
//Considering 0 based indexing
for i=1 to (N-2)
if (2*array[i] is not equal to (array[i-1]+array[i+1])) then
if( (array[i]-array[i-1])< (array[i+1]-array[i]))
print 2*array[i]-array[i-1]
else
print 2*array[i]-array[i+1]
break
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释有什么问题METHOD I?我错过了哪些案例.谢谢.
我在Mongo Shell中写了以下4个语句
一世) NumberLong(3)
II) NumberLong(3)+NumberLong(4)
三) typeof NumberLong(3)
IV) typeof (NumberLong(3)+NumberLong(4))
和他们相应的产出是
一世) NumberLong(3)
II) 7
三) object
IV) number
虽然第二个结果使第四个结果显而易见,但我无法找到这个行为的头部或尾部.幕后发生了什么?我尝试在MongoDB文档中找到基础概念,但找不到多少.请帮忙!!
我有一个简单的任务,就是从列表中选择所有元素(按降序排序),它们位于给定元素之上.即
X=[32,28,26,21,14,11,8,6,3]
Threshold=12
Result=[32,28,26,21,14]
Run Code Online (Sandbox Code Playgroud)
我最初做的是简单的事情
FullList=[x for x in FullList if x>=Threshold]
Run Code Online (Sandbox Code Playgroud)
但是,由于列表已经排序,我可以(并且需要)介于两者之间.
多撞头和一个美丽的教程后在这里,我终于想出了以下解决方案.
def stopIteration():
raise StopIteration
FullList=list(x if x>=Threshold else stopIteration() for x in FullList )
Run Code Online (Sandbox Code Playgroud)
但是,当我写下面的语句时,它给我一个语法错误:
FullList=list(x if x>=Threshold else raise StopIteration for x in FullList )
Run Code Online (Sandbox Code Playgroud)
这种行为背后的原因是什么?
python ×3
algorithm ×1
list ×1
mongo-shell ×1
mongodb ×1
pandas ×1
scikit-learn ×1
string ×1
tuples ×1