小编gbo*_*ffi的帖子

从 PDB 中去除杂原子

必须删除 pdb 文件中的杂原子。这是代码,但它不适用于我的测试 PDB 1C4R。

for model in structure:
    for chain in model:
        for reisdue in chain:
            id = residue.id
            if id[0] != ' ':
                chain.detach_child(id)
        if len(chain) == 0:
            model.detach_child(chain.id)
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

python protein-database biopython

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

`reduce(add,...)`vs`sumnd(...)`,为什么第二个在对象列表上失败

我期望reduce(add,lst)并且sum(lst)应该给我相同的结果,但是

In [18]: class p():
    def __init__(self, x, y):
        self.x=x ; self.y=y
    def __repr__(self):
        return "(%r,%r)"%(self.x,self.y)
    def __add__(self, P):
        return p(self.x+P.x, self.y+P.y)
   ....:     
In [19]: pts=[p(1,0), p(2,1), p(-3,4)]
In [20]: from operator import add
In [21]: print reduce(add,pts)
(0,5)
In [22]: print sum(pts)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-98a81789d257> in <module>()
----> 1 print sum(pts)
TypeError: unsupported operand type(s) for +: 'int' and 'instance'
In [23]: 
Run Code Online (Sandbox Code Playgroud)

当然我不理解某些东西,可能是显而易见的; 有人可以开导我吗?

python reduce sum

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

不同的颜色代表不同的值范围

我有两个数组,,t是自变量,并作为 的函数进行计算。xtxt

我可以轻松绘制它们,例如,

from pylab import *
t = linspace(o, 2*pi, 201)
x = sin(t)
plot(t, x)
Run Code Online (Sandbox Code Playgroud)

但我想要的是不同的,因为在我的领域,当abs(x)>0.9故障概率从 0.000001% 增加到 99.999999% 时,我想用鲜红色绘制系统可能发生故障的曲线部分。

我可以想象两种可能的解决方案。

  • 绘制两个屏蔽数组
  • 用彩色地图玩把戏

但我不知道是否有不同的、更好的可能性,但我不知道如何实施解决方案......

python matplotlib

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

除了地图和向量之外,还有其他在Clojure中使用get的用途吗?

到目前为止我所知道的用途是向量:

(get [1 2 3 4] 2) ; => 3
Run Code Online (Sandbox Code Playgroud)

并在地图上:

(get {:a "a" :b "B" :c "c"} :c) ; => "c"
Run Code Online (Sandbox Code Playgroud)

从文档中可以看出:

clojure.core/get([map key] [map key not-found])

如果key不存在,则返回映射到key,not-found或nil的值.

dictionary get vector clojure

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

单位球体上两个“P = (x, y, z)”点之间的大圆距离

我需要使用单位球体上的坐标 ( x, y, z )来计算两点之间的距离。

两个半正弦波和大弧线距离使用(经度和纬度)。我如何为x, y, z编写这些公式?

python trigonometry distance coordinates

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

Python 按字长统计单词数

我得到了一个带有文本的 .txt 文件。我已经清理了文本(删除了标点符号、大写字母、符号),现在我有了一个包含单词的字符串。我现在试图获取len()字符串上每个项目的字符数。然后绘制一个图,其中 N 个字符在 X 轴上,Y 轴是具有这样 Nlen()个字符的单词数

到目前为止,我有:

text = "sample.txt"

def count_chars(txt):
    result = 0
    for char in txt:
        result += 1     # same as result = result + 1
    return result

print(count_chars(text))
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是在查找len()文本的总数而不是按单词查找。

我想得到类似函数 Counter 的东西,Counter()它返回单词以及它在整个文本中重复的次数。

from collections import Counter
word_count=Counter(text)
Run Code Online (Sandbox Code Playgroud)

我想获得每个单词的字符数。一旦我们有了这样的计数,绘图应该会更容易。

谢谢和任何帮助!

python matplotlib

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

python根据另一个csv文件更新csv文件的列值

例如考虑文件a.csv

1  23 'better' 0
2  21 'bad'    0
3  34 'good'   0
Run Code Online (Sandbox Code Playgroud)

b.csv

23 2
34 5
Run Code Online (Sandbox Code Playgroud)

我们可以得到结果:

1  23 'better' 2
2  21 'bad'    0
3  34 'good'   5
Run Code Online (Sandbox Code Playgroud)

python

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

广播 - 将(N×N)阵列乘以(M)阵列以具有(NxNxM)阵列

我有两个numpy人的ndarray

a.shape # -> (3, 3)
b.shape # -> (5,)
Run Code Online (Sandbox Code Playgroud)

我想要计算一个c由...定义的数组

c.shape # -> (3, 3, 5)
c[...,i] = a*b[i]
Run Code Online (Sandbox Code Playgroud)

(确切的形状c并不重要,因为我总能调换它的轴).

在我看来,到目前为止发布我的编码尝试会不必要地令人尴尬,它就像许多变种一样,a[:,None,:]*b[None,:]而且足够说,不是吗?

我怀疑这np.einsum()可能是答案,但其下标命令的语法超出了我的脑海......

python numpy

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

nbconvert --to latex,删除所有提示

我想In [35]:从生成的LaTeX中删除典型的IPython提示jupyter-nbconvert --to latex.

一旦有了模板,style_simple.tplx几乎就是我想要的,但现在它已经被移除了,otoh它的配套模板,style_bw_ipython.tplx等等.仍然分发但不再使用新的nbconvert工作.

我知道我必须在模板语言中编写一个临时模板jinja2,但是jinja2模板语法及其使用nbconvert都没有理解我的理解,尽管我做了很多尝试.

鉴于我无法编写这样的模板,我正在寻求这项任务的帮助.

jinja2 ipython-notebook jupyter jupyter-notebook nbconvert

0
推荐指数
1
解决办法
456
查看次数

将列添加到结构化 Numpy 数组

我有以下数据geo.dat

\n\n
id  lon  lat inhab  name\n 1   9.  45.   100  Ciri\xc3\xa8\n 2  10.  45.    60  Acquanegra\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到它ndarray

\n\n
import numpy as np\ndata = np.genfromtxt('geo.dat', dtype=None, names=True)\n
Run Code Online (Sandbox Code Playgroud)\n\n

到目前为止,一切顺利,我有一个可以通过列名寻址的数据结构

\n\n
print(data['name'][1]) #>>> Acquanegra\n
Run Code Online (Sandbox Code Playgroud)\n\n

下一步,问题 \xe2\x80\x94 我有一个函数,它接受输入两个地理坐标向量(data['LON']当然data['LAT'])并返回两个数组xy地图上的投影位置(这可以正常工作)。

\n\n

我可以使用单独的向量xy但我想增加data两个新列,data['x']并且data['y']。我天真的尝试

\n\n
data['x'], data['y'] = convert(data['LON'], data['LAT'])\n
Run Code Online (Sandbox Code Playgroud)\n\n

提出了一个ValueError: no field of name x,教我它data具有字典的一些特征,但字典却没有。

\n\n

可以如我所愿吗?蒂亚

\n\n …

python numpy

0
推荐指数
1
解决办法
2535
查看次数

不使用 collections.Counter 来计算出现次数

我正在尝试检索列表中最频繁和不太频繁的元素。

frequency([13,12,11,13,14,13,7,11,13,14,12,14,14])
Run Code Online (Sandbox Code Playgroud)

我的输出是:

([7], [13, 14])
Run Code Online (Sandbox Code Playgroud)

我尝试过:

import collections
s = [13,12,11,13,14,13,7,11,13,14,12,14,14]
count = collections.Counter(s)
mins = [a for a, b in count.items() if b == min(count.values())]
maxes = [a for a, b in count.items() if b == max(count.values())]
final_vals = [mins, maxes]
Run Code Online (Sandbox Code Playgroud)

但我不想使用该collections模块并尝试更面向逻辑的解决方案。
你能帮我在没有集合的情况下做到这一点吗?

python counting

0
推荐指数
1
解决办法
5610
查看次数

清单迭代工具的所有组合

我正在尝试创建一个递归函数,以查找python列表的所有组合。

我想在函数中输入['a','b','c'],并在函数运行时希望跟踪显示如下:

   ['a','b','c']  
   ['['a','a'],['b','a'],['c','a']]      
   ['['a','a','b'],['b','a','b'],['c','a','b']]      
   ['['a','a','b','c'],['b','a','b','c'],['c','a','b','c']]
Run Code Online (Sandbox Code Playgroud)

我的递归函数如下所示:

def combo(lst,new_lst = []):
    for item in lst:
        new_lst.append([lst[0],item])
        print([lst[0],item])
    return combo(new_lst,lst[1:])
Run Code Online (Sandbox Code Playgroud)

python recursion combinations list python-itertools

-1
推荐指数
1
解决办法
2742
查看次数

Python:如何基于特定元素拆分列表

如果我们在Python中有以下列表

sentence = ["I", "am", "good", ".", "I", "like", "you", ".", "we", "are", "not", "friends", "."]
Run Code Online (Sandbox Code Playgroud)

如何将其拆分以获得包含以句点结束的元素的列表?所以我想在我的新列表中获得以下元素:

["I","am","good","."]
["I","like","you","."]
["we","are","not","friends","."]
Run Code Online (Sandbox Code Playgroud)

到目前为止我的尝试:

cleaned_sentence = []
a = 0
while a < len(sentence):
    current_word = sentence[a]
    if current_word == "." and len(cleaned_sentence) == 0:
        cleaned_sentence.append(sentence[0:sentence.index(".")+1])
        a += 1
    elif current_word == "." and len(cleaned_sentence) > 0:
        sub_list = sentence[sentence.index(".")+1:-1]
        sub_list.append(sentence[-1])
        cleaned_sentence.append(sub_list[0:sentence.index(".")+1])
        a += 1
    else:
        a += 1

for each in cleaned_sentence:
    print(each)
Run Code Online (Sandbox Code Playgroud)

运行此sentence生成

['I', 'am', 'good', '.']
['I', 'like', …
Run Code Online (Sandbox Code Playgroud)

python indexing list

-1
推荐指数
1
解决办法
611
查看次数