小编Dna*_*iel的帖子

matlab巨大矩阵的相关矩阵

我有一个尺寸为37,000,000乘22的X矩阵,我想计算X的相关矩阵.

也就是说,

X_corr = corr(X,'type','Spearman');
Run Code Online (Sandbox Code Playgroud)

我希望X_corr的大小为22乘22.

但它需要永远,无论如何,为这样的长矩阵更快地计算相关矩阵?

谢谢!

matlab matrix correlation

3
推荐指数
1
解决办法
2095
查看次数

SuperImpose直方图适合一个图ggplot

我有~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条目的数据帧然后绘制,在我的情况下非常低效.

谢谢!

plot r histogram ggplot2

3
推荐指数
1
解决办法
1701
查看次数

pythonic方式来匹配字典

我有两本词典

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 dictionary

3
推荐指数
1
解决办法
74
查看次数

如何在python中用双引号和单引号定义字符串

我正在使用 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)

如何在python中存储包含单引号(')和双引号(“)的字符串

python

3
推荐指数
1
解决办法
4835
查看次数

通过在不同向量中定义的因子来获取一个向量的平均值

让我们说我有两个向量,

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.在没有循环的情况下,有效的方法是什么?

谢谢!

r

3
推荐指数
1
解决办法
94
查看次数

pandas dataframe 使用 np.where 并放在一起

我有一个数据框,我希望能够使用 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 函数来实现此目的?

python numpy pandas

3
推荐指数
1
解决办法
7804
查看次数

创建嵌套字典一个班轮

嗨我有三个列表,我想用一行创建一个三级嵌套字典.

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)

python dictionary

3
推荐指数
1
解决办法
236
查看次数

将字典的 dict 转换为 Pandas DataFrame

我有一个看起来像这样的两级字典:

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)

我想将其存储为具有以下设计的数据框:

  • 数据存在于一列而不是另一列的日期成为数据框中的 np.nan - 这很好,因为我可以在需要时使用回填函数。
  • 所有日期的并集成为索引,索引的类型为 pd.DatetimeIndex - 这很好,所以我可以轻松地在数据帧上进行时间操作

数据框:

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数据框

但是,我发现这种方法存在一些效率低下的问题,因为字典中的循环过多,并且复制数据的频率高于可能需要的频率。

欢迎任何建议。

python dictionary dataframe pandas

3
推荐指数
1
解决办法
3634
查看次数

rstudio代码折叠就像在matlab GUI中一样

我通常使用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所以我不想一直去编辑 - …

matlab r rstudio

2
推荐指数
1
解决办法
2447
查看次数

字典中FIFO顺序的pythonic方式

我试图在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.

即,狗,然后是老虎,然后是熊猫.

有没有一个很好的方法来做到这一点,而不必保留外部索引或更复杂的字典结构?不确定,对不起我的天真......

python dictionary

2
推荐指数
1
解决办法
2482
查看次数

标签 统计

python ×6

dictionary ×4

r ×3

matlab ×2

pandas ×2

correlation ×1

dataframe ×1

ggplot2 ×1

histogram ×1

matrix ×1

numpy ×1

plot ×1

rstudio ×1