我对用于标记的几个问题clustermap
在seaborn
.首先,可以提取层次聚类的距离值,并在树结构可视化上绘制值(可能只有前三个级别).
这是我用于创建clustermap plot的示例代码:
import pandas as pd
import numpy as np
import seaborn as sns
get_ipython().magic(u'matplotlib inline')
m = np.random.rand(50, 50)
df = pd.DataFrame(m, columns=range(4123, 4173), index=range(4123, 4173))
sns.clustermap(df, metric="correlation")
Run Code Online (Sandbox Code Playgroud)
另外两个问题是: - 如何旋转y标签,因为它们重叠在一起.
- 如何将颜色条移动到底部或右侧.(有一个关于热图的问题,但对我的情况不起作用.也没有解决颜色条的位置)
python artificial-intelligence machine-learning matplotlib seaborn
我有一个查询无法执行"无法为数据库'TEMPDB'分配新页面,因为文件组'DEFAULT'中的磁盘空间不足".
在解决问题的方式我正在检查执行计划.有两个标记为"聚集索引扫描(聚集)"的昂贵步骤.我很难找出这意味着什么?
我将不胜感激"Clustered Index Scan(Clustered)"的任何解释或有关在何处查找相关文档的建议?
deque.popleft()
并且list.pop(0)
似乎返回相同的结果.他们之间有什么性能差异和原因?
是否可以删除或插入sklearn.pipeline.Pipeline
对象中的步骤?
我试图在Pipeline对象中有或没有一步进行网格搜索.并想知道我是否可以在管道中插入或删除一个步骤.我在Pipeline
源代码中看到,有一个self.steps
对象包含所有步骤.我们可以逐步完成named_steps()
.在修改它之前,我想确保,我不会造成意想不到的影响.
这是一个示例代码:
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
estimators = [('reduce_dim', PCA()), ('svm', SVC())]
clf = Pipeline(estimators)
clf
Run Code Online (Sandbox Code Playgroud)
是否有可能steps = clf.named_steps()
在此列表中执行类似的操作,然后插入或删除?这是否会对clf对象造成不良影响?
python artificial-intelligence machine-learning scikit-learn
GridSearchCV使用"评分"来选择最佳估算器.训练GridSearchCV后,我希望看到每个组合的得分.GridSearchCV是否存储每个参数组合的所有分数?如果它如何获得分数?谢谢.
这是我在另一篇文章中使用的示例代码.
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.grid_search import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.naive_bayes import MultinomialNB
X_train = ['qwe rtyuiop', 'asd fghj kl', 'zx cv bnm', 'qw erty ui op', 'as df ghj kl', 'zxc vb nm', 'qwe rt yu iop', 'asdfg hj kl', 'zx cvb nm',
'qwe rt yui op', 'asd fghj kl', 'zx cvb nm', 'qwer tyui op', 'asd fg hjk l', 'zx cv b nm', 'qw ert yu iop', 'as df …
Run Code Online (Sandbox Code Playgroud) python artificial-intelligence machine-learning scikit-learn
我试图基于时间序列数据的滑动窗口提取功能.在Scala中,似乎有一个sliding
基于这篇文章和文档的函数
import org.apache.spark.mllib.rdd.RDDFunctions._
sc.parallelize(1 to 100, 10)
.sliding(3)
.map(curSlice => (curSlice.sum / curSlice.size))
.collect()
Run Code Online (Sandbox Code Playgroud)
我的问题是PySpark中有类似的功能吗?或者,如果没有这样的功能,我们如何实现类似的滑动窗口转换呢?
我正在尝试从存储在本地磁盘上的 SQLLite .db 文件加载表。在 PySpark 中有没有干净的方法可以做到这一点?
目前,我正在使用一种有效但不那么优雅的解决方案。首先,我通过 sqlite3 使用 Pandas 读取表格。一个问题是在此过程中架构信息没有被传递(可能是也可能不是问题)。我想知道是否有一种直接的方法可以在不使用 Pandas 的情况下加载表。
import sqlite3
import pandas as pd
db_path = 'alocalfile.db'
query = 'SELECT * from ATableToLoad'
conn = sqlite3.connect(db_path)
a_pandas_df = pd.read_sql_query(query, conn)
a_spark_df = SQLContext.createDataFrame(a_pandas_df)
Run Code Online (Sandbox Code Playgroud)
似乎有一种使用 jdbc 来做到这一点的方法,但我还没有弄清楚如何在 PySpark 中使用它。
当对已经在同一节点上的数据使用Hive窗口函数时,是否会发生数据混洗?
具体在下面的示例中,在使用窗口函数数据之前,已经使用Spark repartition()函数通过'City'重新分区,这应该确保城市'A'的所有数据共同本地化在同一节点上(假设城市的数据可以适合在一个节点).
df = sqlContext.createDataFrame(
[('A', '1', 2009, "data1"),
('A', '1', 2015, "data2"),
('A', '22', 2015, "data3"),
('A', '22', 2016, "data4"),
('BB', '333', 2014, "data5"),
('BB', '333', 2012, "data6"),
('BB', '333', 2016, "data7")
],
("City", "Person","year", "data"))
df = df.repartition(2, 'City')
df.show()
# +----+------+----+-----+
# |City|Person|year| data|
# +----+------+----+-----+
# | BB| 333|2012|data6|
# | BB| 333|2014|data5|
# | BB| 333|2016|data7|
# | A| 22|2016|data4|
# | A| 22|2015|data3|
# | A| 1|2009|data1|
# | A| 1|2015|data2|
# +----+------+----+-----+ …
Run Code Online (Sandbox Code Playgroud) 假设我们有一个f
如下定义的Pandas DataFrame .我正在尝试创建一个掩码来选择列'xx'中值为'a'或'b'的所有行(我想选择第0,1,3,4行).
f = pd.DataFrame([['a', 'b','c','a', 'b','c'],['1', '2','3', '4', '5','6', ]])
f = f.transpose()
f.columns = ['xx', 'yy']
f
xx yy
0 a 1
1 b 2
2 c 3
3 a 4
4 b 5
5 c 6
Run Code Online (Sandbox Code Playgroud)
在熊猫中有没有优雅的方法呢?我知道用f.xx =='a'选择所有行,我们可以做f [f.xx =='a'].虽然我还没弄清楚如何用f.xx选择行是'a'或'b'.谢谢.
在Python 2.7中,当尝试强制转换类型以确保它与输出模式匹配时,请参阅以下错误.
UnicodeEncodeError:'ascii'编解码器不能对位置0中的字符进行编码:序号不在范围内(128)试图找到原因并在Jupiter中重现错误.只需输入即可.
str(u'\u2013')
Run Code Online (Sandbox Code Playgroud)
将类型转换为可以处理此类错误的字符串的方法是什么?谢谢!
python ×9
apache-spark ×3
pyspark ×3
scikit-learn ×2
cpython ×1
data-science ×1
deque ×1
encoding ×1
hadoop ×1
hive ×1
list ×1
matplotlib ×1
pandas ×1
performance ×1
python-2.7 ×1
seaborn ×1
sql ×1
sql-server ×1
sqlite ×1
string ×1
time-series ×1
unicode ×1