小编Dar*_*ick的帖子

Numpy - 向数组添加行

如何将行添加到numpy数组?

我有一个数组A:

A = array([[0, 1, 2], [0, 2, 0]])
Run Code Online (Sandbox Code Playgroud)

如果X中每行的第一个元素满足特定条件,我希望从另一个数组X向此数组添加行.

Numpy数组没有像列表那样的"附加"方法,或者看起来如此.

如果A和X是列表,我只会这样做:

for i in X:
    if i[0] < 3:
        A.append(i)
Run Code Online (Sandbox Code Playgroud)

是否有一种相似的方式?

谢谢,S ;-)

python arrays numpy rows

146
推荐指数
6
解决办法
36万
查看次数

R - 连接两个数据帧?

给出两个数据帧ab:

> a
           a           b           c
1 -0.2246894 -1.48167912 -1.65099363
2  0.5559320 -0.87898575 -0.15634590
3  1.8469466 -0.01487524 -0.53098215
4 -0.6875051  0.23880967  0.01824621
5 -0.6735163  0.75485292  0.44154092


> b
           a          c
1  0.4287284 -0.3295925
2  0.5201492  0.3341251
3 -2.6355570  1.7916780
4 -1.3645337  1.3642276
5 -0.4954542 -0.6660001
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来连接这些以便返回下面表单的新数据框?

> new
           a                   b           c
1  -0.2246894   -1.48167912106676 -1.65099363
2   0.5559320  -0.878985746842256 -0.15634590
3   1.8469466 -0.0148752354840942 -0.53098215
4  -0.6875051   0.238809666690982  0.01824621
5  -0.6735163   0.754852923524198  0.44154092
6   0.4287284                  NA -0.32959248
7 …
Run Code Online (Sandbox Code Playgroud)

r concatenation dataframe

115
推荐指数
5
解决办法
24万
查看次数

如何将文件转换为字典?

我有一个包含两列的文件,即

1 a 
2 b 
3 c
Run Code Online (Sandbox Code Playgroud)

我希望将此文件读入字典,以便第1列是键,第2列是值,即

d = {1:'a', 2:'b', 3:'c'}
Run Code Online (Sandbox Code Playgroud)

文件很小,因此效率不是问题.

python dictionary file

82
推荐指数
4
解决办法
23万
查看次数

R - 矩阵中元素的返回位置?

给定一个矩阵:

      [,1] [,2]
[1,]    0  0.0
[2,]   -1  0.8
Run Code Online (Sandbox Code Playgroud)

R中迭代矩阵并将所有非零项的位置作为索引返回的最快方法是什么?

indexing r matrix

20
推荐指数
2
解决办法
4万
查看次数

MATLAB - 从目录中读取文件?

我希望从目录中读取文件,并迭代地对每个文件执行操作.此操作不需要更改文件.

我明白我应该使用for循环.到目前为止,我尝试过:

FILES = ls('path\to\folder');

for i = 1:size(FILES, 1);
    STRU = pdbread(FILES{i});
end
Run Code Online (Sandbox Code Playgroud)

这里返回的错误告诉我,一个新手,使用ls()列出目录不会将内容分配给数据结构.

其次,我尝试创建一个文件,在每行包含文件的路径,例如,

C:\Documents and Settings\My Documents\MATLAB\asd.pdb
C:\Documents and Settings\My Documents\MATLAB\asd.pdb
Run Code Online (Sandbox Code Playgroud)

然后我使用以下代码读取此文件:

fid = fopen('paths_to_files.txt');
FILES = textscan(fid, '%s');
FILES = FILES{1};
fclose(fid);
Run Code Online (Sandbox Code Playgroud)

此代码读取文件,但创建一个换行符中存在空格的换行符,即

'C:\Documents'
'and'
'Setting\My'
'Documents\MATLAB\asd.pdb'
Run Code Online (Sandbox Code Playgroud)

最后,我打算使用for循环

for i = 1:size(FILES, 1)
    PDB = pdbread(char(FILES{i}));
Run Code Online (Sandbox Code Playgroud)

读取每个文件,但pdbread()抛出错误,声明文件格式不正确或不存在.

这是因为读入路径文件时路径的换行符分隔?

任何帮助或建议都非常适用.

谢谢,S :-)

directory matlab file

13
推荐指数
1
解决办法
6万
查看次数

Python - 随机将列表分成几乎相等的n个部分

我已经阅读了Python的答案:将列表切成n个近似等长的分区问题.

这是公认的答案:

def partition(lst, n): 
    division = len(lst) / float(n) 
    return [ lst[int(round(division * i)): int(round(division * (i + 1)))] for i in xrange(n) ]
Run Code Online (Sandbox Code Playgroud)

我想知道,为了将项目随机分配给分区而不是增量分配,如何修改这些解决方案.

谢谢,S :-)

python random slice

11
推荐指数
2
解决办法
2万
查看次数

Python - 函数输出?

我有一个非常基本的问题.

假设我调用一个函数,例如,

def foo():
    x = 'hello world'
Run Code Online (Sandbox Code Playgroud)

如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?

当我使用return并在另一个函数中调用该变量时,我得到一个NameError.

python function

10
推荐指数
2
解决办法
7万
查看次数

Python - 使用子进程调用sed?

我希望使用subprocess从python 调用sed.我尝试使用的脚本如下.但是,这会将sed输出传输到标准终端.似乎在我的subprocess.call语句中无法识别'>'运算符.有什么建议?

import sys 
import os 
import subprocess

files = os.listdir(sys.argv[1])

count = 0

for f in files:
    count += 1
    inp = sys.argv[1] + f
    outp = '../' + str(count) + '.txt'
    sub = subprocess.call(['sed', 's/\"//g', inp, '>', outp])
Run Code Online (Sandbox Code Playgroud)

另外 - 我的文件名中有空格,即"file1 .txt".这可能是问题吗?当我从终端调用sed时,我的sed命令工作正常,而不是从脚本调用.

谢谢.

python subprocess sed

10
推荐指数
2
解决办法
2万
查看次数

Python - 在大型数据集上计算多项式概率密度函数?

我原本打算使用MATLAB来解决这个问题,但内置函数的局限性不符合我的目标.NumPy也会出现同样的限制.

我有两个制表符分隔的文件.第一个是显示蛋白质结构内部数据库的氨基酸残基,频率和计数的文件,即

A    0.25    1
S    0.25    1
T    0.25    1
P    0.25    1
Run Code Online (Sandbox Code Playgroud)

第二个文件由氨基酸的四联体和它们出现的次数组成,即

ASTP    1
Run Code Online (Sandbox Code Playgroud)

注意,有超过8,000个这样的四胞胎.

基于每个氨基酸的出现的背景频率和四胞胎的数量,我的目标是计算每个四联体的多项式概率密度函数,并随后将其用作最大似然计算中的期望值.

多项分布如下:

f(x|n, p) = n!/(x1!*x2!*...*xk!)*((p1^x1)*(p2^x2)*...*(pk^xk))
Run Code Online (Sandbox Code Playgroud)

其中x是具有固定概率p的n次试验中每个k个结果的数量.在我的计算中,n在所有情况下都是4四.

我创建了四个函数来计算这个分布.

# functions for multinomial distribution


def expected_quadruplets(x, y):
    expected = x*y
    return expected

# calculates the probabilities of occurence raised to the number of occurrences

def prod_prob(p1, a, p2, b, p3, c, p4, d):
    prob_prod = (pow(p1, a))*(pow(p2, b))*(pow(p3, c))*(pow(p4, d))
    return prob_prod 


# factorial() and multinomial_coefficient() work in tandem to calculate C, the …
Run Code Online (Sandbox Code Playgroud)

python data-structures

9
推荐指数
1
解决办法
3006
查看次数

Python - 嵌套分隔文件的嵌套列表?

我有一个嵌套列表,包含~30,000个子列表,每个子列表有三个条目,例如,

nested_list = [['x', 'y', 'z'], ['a', 'b', 'c']].
Run Code Online (Sandbox Code Playgroud)

我希望创建一个函数,以便将此数据结构输出为制表符分隔格式,例如,

x    y    z
a    b    c
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢!

谢谢,Seafoid.

python nested list tab-delimited

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