我有一个大的节点和有向边的图.此外,我还为每个节点分配了一个额外的值列表.
我现在想根据节点值更改每个节点的颜色.例如,绘制具有非常高的红色值的节点和具有低值蓝色的节点(类似于热图).这在某种程度上很容易实现吗?如果没有使用networkx,我也可以使用Python中的其他库.
我目前正在使用logscale,以便更有可能绘制我的数据.不过,我的数据也包含零值.我知道这些零值在logscale上不起作用,因为没有定义log(0).
所以,例如,
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([0,1,2],[10,10,100],marker='o',linestyle='-')
ax.set_yscale('log')
ax.set_xscale('log')
Run Code Online (Sandbox Code Playgroud)
完全省略零值.这种行为可以接受吗?至少应该有某种警告.我只是意外地认出来了.是否还有一种在logscale中绘制零值数据的方法?
谢谢!
PS:我希望这适合stackoverflow.我没有找到matplotlib的邮件列表.
我目前面临着可视化三维数据的问题.具体地说,我有两个变化的参数,第三个维度是结果输出,在这种情况下是0到1之间的值(百分比).
我有几个不同的数据集,我想说明.它在matplotlib(pcolor)中使用热图很有效.
但是,我想直接比较不同的数据集.我不太满意为每个数据集生成一个单独的图并以这种方式表示它.我不知何故想在一个图中绘制它以便能够直接比较它们.
我已经尝试了3D图(散点图和曲面图),它工作得相当不错,但是值是重叠的,大多数时候你只能看到一个数据集.3D Plots真的不太好用.
所以我的主要问题是,如果有人知道如何在一个情节中代表这一点.
问候!
我目前正在使用 BigQuery 和 GROUP_CONCAT,它们运行良好。但是,当我像在 SQL 中那样尝试将 ORDER BY 子句添加到 GROUP_CONCAT 语句时,我收到错误消息。
所以例如,像
SELECT a, GROUP_CONCAT(b ORDER BY c)
FROM test
GROUP BY a
如果我尝试指定分隔符,也会发生同样的情况。
关于如何解决这个问题的任何想法?
我目前在BigQuery中的工作流程如下:
(1)在公共存储库(存储在美国)中查询数据,(2)将数据写入存储库中的表,(3)将csv导出到云存储桶,(4)在我工作的服务器上下载csv和(5)一起使用服务器上的。
我现在遇到的问题是,我工作的服务器位于欧盟。因此,在美国水桶和欧盟服务器之间传输数据时,我必须支付相当多的费用。现在,我可以继续在欧盟找到自己的存储桶,但是仍然有一个问题,我需要将数据从美国(BigQuery)传输到欧盟(存储桶)。因此,我也可以将bq中的数据集设置为位于欧盟,但是之后我将无法再执行任何查询,因为公共存储库中的数据位于美国,并且不允许在不同位置之间进行查询。
有谁知道如何解决这个问题?
我实际上不确定我是不是偶然发现了javascript中的不需要的行为,或者这是否是某种预期的行为.
以下代码生成一个真实的语句:
var test= {"test":1}
document.write("constructor" in test);
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/xyatxm2g/2/
如果我将其更改为以下代码,它将返回false,因为它应该:
var test= {"test":1}
document.write(test.hasOwnProperty("constructor"));
Run Code Online (Sandbox Code Playgroud)
我想使用Python 计算spearman等级相关性,并且最有可能是scipy实现(scipy.stats.spearmanr).
手头的数据看起来如下,以下方式(字典):
{a:0.3, b:0.2, c:0.2} and {a:0.5, b:0.6, c:0.4}
Run Code Online (Sandbox Code Playgroud)
现在把它传递给spearman模块,如果我是正确的(降序),我会给它们分配等级:
[1,2,3] and [2,1,3]
Run Code Online (Sandbox Code Playgroud)
所以现在我想考虑关系,所以我现在用于第一个向量:
[1,2,2] or [1,2.5,2.5]
Run Code Online (Sandbox Code Playgroud)
基本上,这整个概念是否正确以及如何处理这种基于字典的数据的联系.
正如@Jaime所建议的那样,spearmanr函数可以使用值,但为什么这种行为是可行的:
In [5]: spearmanr([0,1,2,3],[1,3,2,0])
Out[5]: (-0.39999999999999997, 0.59999999999999998)
In [6]: spearmanr([10,7,6,5],[0.9,0.5,0.6,1.0])
Out[6]: (-0.39999999999999997, 0.59999999999999998)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我目前想要使用余弦相似度和python中的Tfidf功能来计算所有对文档的相似度.我的基本方法如下:
from sklearn.feature_extraction.text import TfidfVectorizer
#c = [doc1, doc2, ..., docn]
vec = TfidfVectorizer()
X = vec.fit_transform(c)
del vec
Y = X * X.T
Run Code Online (Sandbox Code Playgroud)
工作得很好,但不幸的是,不是我的大数据集.X具有维度,(350363, 2526183)因此输出矩阵Y应该具有(350363, 350363).由于tfidf功能,X非常稀疏,因此很容易适合内存(仅约2GB).然而,在运行一段时间后,乘法会给我一个内存错误(即使内存不满但我想scipy是如此聪明以至于期望内存使用).
我已经尝试过使用dtypes而没有任何成功.我还确保numpy和scipy将他们的BLAS库链接起来 - 虽然这对csr_matrix点功能没有影响,因为它在C中实现.我想可能使用像memmap这样的东西,但我不确定那.
有没有人知道如何最好地接近这个?
我有两个矩阵X和Y(在我的大多数情况下它们是相似的)现在我想计算所有行之间的成对KL分歧并将它们输出到矩阵中.例如:
X = [[0.1, 0.9], [0.8, 0.2]]
Run Code Online (Sandbox Code Playgroud)
然后,该函数应该获取kl_divergence(X, X)并计算两个X矩阵的每对行的成对K1发散距离.输出将是2x2矩阵.
在Python中已经有了一些实现吗?如果没有,这应该很容易计算.我想要一些矩阵实现,因为我有很多数据,需要尽可能地保持运行时间.或者,Jensen-Shannon熵也很好.最终这对我来说甚至是更好的解决方案.
我想基于groupby随机调整数据帧的单个列的值.例如,我有两列A和B.现在,我想根据A上的groupby随机混洗B列.
例如,假设A中有三个不同的值.现在,对于A的每个不同值,我想要将B中的值混洗,但只是具有相同A的值.
输入示例:
A B
------------
1 1
1 3
2 4
3 6
1 2
3 5
Run Code Online (Sandbox Code Playgroud)
示例输出:
A B
------------
1 3
1 2
2 4
3 6
1 1
3 5
Run Code Online (Sandbox Code Playgroud)
在这种情况下,A=1B的值被洗牌.同样的事情也发生了A=2,但因为只有一排它就像它一样.对于A=3偶然的机会,B的值也保持不变.
我想用熊猫来实现它.
我试图找到一种有效的方法,让我通过一些常数值增加稀疏矩阵的前k值.我目前正在使用以下代码,这对于非常大的矩阵来说非常慢:
a = csr_matrix((2,2)) #just some sample data
a[1,1] = 3.
a[0,1] = 2.
y = a.tocoo()
idx = y.data.argsort()[::-1][:1] #k is 1
for i, j in izip(y.row[idx], y.col[idx]):
a[i,j] += 1
Run Code Online (Sandbox Code Playgroud)
实际上排序似乎很快,问题在于我的最后一个循环,我通过索引排序索引来增加值.希望有人知道如何加快速度.
我目前正在尝试根据自定义条件对结果进行排名。让我们假设我的数据如下所示:
col1 col2 col3
-----------------------
1 1 2
1 3 33
2 4 5
3 6 40
1 2 5
3 5 10
Run Code Online (Sandbox Code Playgroud)
我现在想按 col1 分组并按 col2 排序,然后对结果进行排名。但是,我只想在 col3 大于 30 时提高排名。因此结果应如下所示:
col1 col2 col3 rank
-----------------------------
1 1 2 1
1 2 5 1
1 3 33 2
2 4 5 1
3 5 10 1
3 6 40 2
Run Code Online (Sandbox Code Playgroud)
我只是找不到解决问题的优雅方法。如果我只使用经典排名,那么整个事情当然行不通;例如:
RANK() OVER (PARTITION BY col1 ORDER BY col2)
如果可能的话,由于性能问题,我想在这里使用窗口函数。我也在 Google 的 Bigquery 环境中工作。
python ×8
scipy ×3
matplotlib ×2
matrix ×2
numpy ×2
sql ×2
3d ×1
correlation ×1
distance ×1
graph ×1
heatmap ×1
javascript ×1
metrics ×1
networkx ×1
oracle ×1
pandas ×1
scikit-learn ×1
sorting ×1
statistics ×1