我有一个尺寸为37,000,000乘22的X矩阵,我想计算X的相关矩阵.
也就是说,
X_corr = corr(X,'type','Spearman');
Run Code Online (Sandbox Code Playgroud)
我希望X_corr的大小为22乘22.
但它需要永远,无论如何,为这样的长矩阵更快地计算相关矩阵?
谢谢!
我有~5个非常大的向量(~108个MM条目)所以我在R中用它们做的任何情节/东西需要相当长的时间.
我正在尝试将它们的分布(直方图)可视化,并且想知道在不花费太长时间的情况下将它们的直方图分布叠加在R中的最佳方法是什么.我想首先将分布拟合到直方图,然后在一个图中将所有分布线拟合在一起.
你对如何做到有什么建议吗?
让我们说我的载体是:
x1, x2, x3, x4, x5.
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此代码:在R中使用ggplot2覆盖直方图
我用于3个向量的代码示例(R无法执行绘图):
n = length(x1)
dat <- data.frame(xx = c(x1, x2, x3),yy = rep(letters[1:3],each = n))
ggplot(dat,aes(x=xx)) +
geom_histogram(data=subset(dat,yy == 'a'),fill = "red", alpha = 0.2) +
geom_histogram(data=subset(dat,yy == 'b'),fill = "blue", alpha = 0.2) +
geom_histogram(data=subset(dat,yy == 'c'),fill = "green", alpha = 0.2)
Run Code Online (Sandbox Code Playgroud)
但是制作情节需要花费很长时间,最终它会把我从R中踢出来.关于如何有效地使用ggplot2进行大型向量的任何想法?在我看来,我必须创建一个5*108MM条目的数据帧然后绘制,在我的情况下非常低效.
谢谢!
我有两本词典
a = {'hola':4.6, 'bye':56.7, 'tres':52.1}
b = {'hola':7.1, 'tres':103.1}
Run Code Online (Sandbox Code Playgroud)
和b是a的子集.
我想创建一个新的字典,c带有值,a/b,即
c = {'hola'=7.1/4.6, 'tres':103.1/52.1}
Run Code Online (Sandbox Code Playgroud)
我可以做一个for循环的b元素到a,并创建一个新的,但是有一个更优雅的方式,没有循环?只是好奇.
我正在使用 python 与操作系统通信。
我需要创建以下形式的字符串:
string = "done('1') && done('2')"
Run Code Online (Sandbox Code Playgroud)
请注意,我的字符串中必须包含双引号,但我不知道该怎么做,因为在 python 中使用双引号来定义字符串。
然后我做这样的事情:
os.system(string)
Run Code Online (Sandbox Code Playgroud)
但是系统只会读取包含双引号和单引号的字符串。
我试过:
>>> s = '"done('1') && done('2')"'
File "<stdin>", line 1
s = '"done('1') && done('2')"'
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我也尝试了此处建议的三重引号,但出现错误:
>>> s = """"done('1') && done('2')""""
File "<stdin>", line 1
s = """"done('1') && done('2')""""
^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
让我们说我有两个向量,
v1 = c(1,2,1,4,5,6,2,2,4,5,5,6)
v2 = c('lo', 'lo', 'la', 'la', 'la', 'li', 'li', 'li', 'li', 'lo', 'li', 'la')
Run Code Online (Sandbox Code Playgroud)
我想取其定义v1的groups(lo, la, li)的平均值v2.在没有循环的情况下,有效的方法是什么?
谢谢!
我有一个数据框,我希望能够使用 np.where 根据给定条件查找某些元素,然后使用 pd.drop 删除与 np.where 找到的索引相对应的元素。
IE,
idx_to_drop = np.where(myDf['column10'].isnull() | myDf['column14'].isnull())
myDf.drop(idx_to_drop)
Run Code Online (Sandbox Code Playgroud)
但我收到一个值错误,因为 drop 不采用 numpy 数组索引。有没有办法使用 np.where 和 pandas 中的一些 drop 函数来实现此目的?
嗨我有三个列表,我想用一行创建一个三级嵌套字典.
即
l1 = ['a','b']
l2 = ['1', '2', '3']
l3 = ['d','e']
Run Code Online (Sandbox Code Playgroud)
我想创建以下嵌套字典:
nd = {'a':{'1':{'d':0},{'e':0},'2':{'d':0},{'e':0},'3':{'d':0},{'e':0},'b':'a':{'1':{'d':0},{'e':0},'2':{'d':0},{'e':0},'3':{'d':0},{'e':0}}
Run Code Online (Sandbox Code Playgroud)
我尝试使用zip来执行外部循环并添加列表但元素被替换.即,这不起作用:
nd = {i:{j:{k:[]}} for i in zip(l1,l2,l3)}
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的两级字典:
myDict = {'a':{'2017-01-01':4.1, '2017-01-02':10.8}, 'b':{'2017-01-01':6.2, '2017-01-03':8.5}}
Run Code Online (Sandbox Code Playgroud)
我想将其存储为具有以下设计的数据框:
数据框:
mydf = pd.DataFrame({'a':[4,10,np.nan],'b':[6.2,np.nan,8.5]}, index=pd.DatetimeIndex(['2017-01-04','2017-01-02','2017-01-03']))
mydf.index.name = 'Date'
Run Code Online (Sandbox Code Playgroud)
IE,
mydf
Out[33]:
a b
Date
2017-01-04 4.0 6.2
2017-01-02 10.0 NaN
2017-01-03 NaN 8.5
Run Code Online (Sandbox Code Playgroud)
我面临的问题当然是我事先不知道哪些日期构成了最终索引(所有日期的联合),而且我也不知道逐列添加数据的最佳方法是什么。
我想到的伪代码:
(1) 遍历字典级别 1 中所有键的所有日期,然后取所有日期的并集。这成为我的索引。
(2) 然后创建一个新的字典,其中只有原始键和值与 (1) 中的索引顺序相同,以及找不到值的 np.nan
(3)使用(2)中的字典创建pandas数据框
但是,我发现这种方法存在一些效率低下的问题,因为字典中的循环过多,并且复制数据的频率高于可能需要的频率。
欢迎任何建议。
我通常使用matlab GUI进行编程,它具有非常好的代码折叠功能,如下所示:
%% This is one chunk of code I can fold just because I am using the %% comment format.
matrix = [1 2 3; 4 5 6];
vector = [1 2];
ax = vector*matrix;
%% This is another chunk of code I can fold because I am using the %% comment format.
matrix2 = [7 8 9; 10 11 12];
vector2 = [7 8];
ax2 = vector2*matrix2;
Run Code Online (Sandbox Code Playgroud)
正如matlab代码中所提到的,%%注释将立即为matlab GUI提供折叠选项,并且展开/折叠的加号/减号将出现在该行上,注释可见.
无论如何在rstudio或一个好的R gui中实现这样的格式化?
我想要加/减功能,以及第一行注释是可见的,这样我就可以知道折叠的代码块中有什么.
谢谢.
GUI减去/加展开/折叠附加波纹管的照片:

当我在RStudio中尝试相同的方法时,似乎唯一的选择是编辑 - >折叠折叠/展开但它隐藏了注释,并且它不像%%功能那样可自动化.在我的情况下更多的是一个问题,因为我使用X11所以我不想一直去编辑 - …
我试图在python中填充一个字典,但我想保留密钥的顺序,因为它们进入 - 正如列表中的FIFO一样.
例如,
我读了一个名为animals.txt的文件,其中包含以下信息:
animal\tconservation_status\n
dog\tdomesticated\n
tiger\tEN\n
panda\tEN\n
Run Code Online (Sandbox Code Playgroud)
也就是说,
animals = {'dog':'dom','tiger':'EN', 'panda':'EN'}
>>> for el in animals:
... print el
...
tiger
dog
panda
Run Code Online (Sandbox Code Playgroud)
在一个FIFO中应该是狗,老虎,熊猫出来......
当我将它读入字典时,订单将不会被保留.我希望保留顺序,这样当我进行for循环时,FIRST IN是FIRST OUT.
即,狗,然后是老虎,然后是熊猫.
有没有一个很好的方法来做到这一点,而不必保留外部索引或更复杂的字典结构?不确定,对不起我的天真......