已关闭 。这个问题需要细节或说明。它当前不接受答案。
想改善这个问题吗? 添加详细信息并通过编辑此帖子来澄清问题。
4年前关闭。
改善这个问题
这四个功能似乎与我真的很相似。在某些情况下,其中一些可能会给出相同的结果,而有些则不会。任何帮助将不胜感激!
现在,我知道了,并且我在内部假设了这一点,factorize
并且LabelEncoder
以相同的方式工作,并且在结果方面没有太大差异。我不确定它们是否会占用大量数据的相似时间。
get_dummies
并且OneHotEncoder
会产生相同的结果,但OneHotEncoder
只能处理数字,但get_dummies
会接受各种输入。get_dummies
将为每个列输入自动生成新的列名称,但OneHotEncoder
不会(而是分配新的列名称1,2,3
....)。因此get_dummies
在各个方面都更好。
如果我错了,请纠正我!谢谢!
这四种编码器可以分为两类:
factorize
和scikit-learn LabelEncoder
。结果将具有1维。get_dummies
和scikit-learn OneHotEncoder
。结果将具有n个维,一个维是编码的分类变量的不同值。熊猫和scikit-learn编码器之间的主要区别在于,使用和方法将scikit-learn编码器用于 scikit-learn管道
。fit``transform
熊猫factorize
和scikit-learnLabelEncoder
属于第一类。它们可用于创建分类变量,例如将字符转换为数字。
from sklearn import preprocessing
# Test data
df = DataFrame(['A', 'B', 'B', 'C'], columns=['Col'])
df['Fact'] = pd.factorize(df['Col'])[0]
le = preprocessing.LabelEncoder()
df['Lab'] = le.fit_transform(df['Col'])
print(df)
# Col Fact Lab
# 0 A 0 0
# 1 B 1 1
# 2 B 1 1
# 3 C 2 2
熊猫get_dummies
和scikit-
learnOneHotEncoder
属于第二类。它们可用于创建二进制变量。OneHotEncoder
只能与分类整数一起使用,而get_dummies
可以与其他类型的变量一起使用。
df = DataFrame(['A', 'B', 'B', 'C'], columns=['Col'])
df = pd.get_dummies(df)
print(df)
# Col_A Col_B Col_C
# 0 1.0 0.0 0.0
# 1 0.0 1.0 0.0
# 2 0.0 1.0 0.0
# 3 0.0 0.0 1.0
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
df = DataFrame(['A', 'B', 'B', 'C'], columns=['Col'])
# We need to transform first character into integer in order to use the OneHotEncoder
le = preprocessing.LabelEncoder()
df['Col'] = le.fit_transform(df['Col'])
enc = OneHotEncoder()
df = DataFrame(enc.fit_transform(df).toarray())
print(df)
# 0 1 2
# 0 1.0 0.0 0.0
# 1 0.0 1.0 0.0
# 2 0.0 1.0 0.0
# 3 0.0 0.0 1.0
我也 根据此答案写了更详细的文章。
问题内容: 我想问一下那里的高手,因为java spring mvc和django之间的主要区别是什么?还有..哪个是最喜欢的? 问题答案: 从开发Web应用程序的角度来看,在应用程序体系结构的方法上只有很大的不同。 Django倾向于施加很多约束,并且在很大程度上取决于内部提供的一组固定解决方案。从中得到的是约定和简化的方法,用于开发应用程序。大多数框架解决方案都适用于每个人,如果不能使用,则您
问题内容: 我需要一些帮助,以了解使用CountDownLatch与传统的wait- notify相比的优势。我认为notifyAll()确实做了同样的事情,并且似乎更易于使用(可能是由于熟悉)。 另外,CountDownLatch中的wait()和await()有什么区别? 谢谢 ! 编辑:我想我需要改写我的查询: Await()根据文档说: 使当前线程 等待, 直到锁存器递减计数到零为止,除非
有人能解释一下spring-boot-parent和spring-boot-starter-parent之间的区别吗?正如我在下面附上的一个GIT HUB代码链接中看到的,他们分别为spring-boot-starter-parent和spring-boot-parent编写了模块。 https://github.com/spring-projects/spring-boot/blob/maste
本文向大家介绍管道和消息队列之间的区别,包括了管道和消息队列之间的区别的使用技巧和注意事项,需要的朋友参考一下 Unix管道 Unix Pipes用于进程间通信。顾名思义,管道可提供单向信息流。数据从一端流向另一端。 消息队列 消息队列允许发送方进程将消息共享到另一个进程。消息队列被实现为消息的链接列表,并存储在内核中。每个消息都有一个唯一的消息队列标识符。内核会记录系统中存在的消息队列。 以下是
问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:
问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。