所以我在我的软件中遇到了一个相当大的瓶颈.我有一组坐标cords,每行对应X,Y,Z坐标.每个坐标cords都有一个定义的区域atom_proj.的atoms变量对应于cords变量和提供的关键atom_proj.
我将坐标投影到grid阵列上,然后旋转并重复,直到满足旋转次数.我只投射X和Z坐标忽略Y.
我在下面简化了我的代码版本.对于小的坐标集和旋转次数,代码运行相对较快.但是如果坐标集和旋转列表都很大,则可能需要很长时间.坐标的数量可以从几百到几万不等.我将该区域投射到grid一个或多个旋转上以产生热图.下面还示出了坐标集的热图的示例.
题:
(i) - 如何减少坐标到矩阵的投影时间
(ii) - 是否有更多的pythonic方式将坐标区应用于grid阵列拼接而不是阵列拼接?
import numpy as np
cords = np.array([[5,4,5],[5,4,3],[6,4,6]])
atoms = np.array([['C'],['H'],['C']])
atom_proj = {'H':np.array([[0,0,0,0,0],[0,0,1,0,0],[0,1,1,1,0],[0,0,1,0,0],[0,0,0,0,0]]),'C':np.array([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]])}
grid = np.zeros((10,10))
for rot in xrange(1,10):
# This for loop would contain a list of list of rotations to apply which are calculated before hand.
# apply rotation
for values in zip(cords, atoms):
atom_shape = np.shape(atom_proj[values[1][0]]) …Run Code Online (Sandbox Code Playgroud) 我注意到当我运行我依赖CPU的高级python程序时,它只使用一个核心.运行时是否可以为程序分配多个内核?
我正在使用以下代码来构建和分层集群:
dat <- read.table(textConnection("
pdb PA EHSS
1avd_model.pdb 3028.0 3920.0
1ave_model.pdb 3083.0 4019.0
1ij8_model.pdb 2958.0 3830.0
1ldo_model.pdb 2889.0 3754.0
1ldq_model.pdb 2758.0 3590.0
1lel_model.pdb 2815.0 3650.0
1vyo_model.pdb 2877.0 3740.0
2a5b_model.pdb 3145.0 4103.0
2a5c_model.pdb 3072.0 3994.0
2a8g_model.pdb 3056.0 3978.0
2avi_model.pdb 2856.0 3700.0
2c4i_model.pdb 2934.0 3795.0
2cam_model.pdb 3112.0 4053.0
2jgs.pdb 2913.0 3739.0
3fdc_model.pdb 2837.0 3666.0"), header=TRUE)
d <- dist(dat$PA, method = "euclidean")
fit <- hclust(d, method="ward", labels=dat$pdb)
plot(fit)
Run Code Online (Sandbox Code Playgroud)
但是当它构建集群时,我收到以下错误消息unused argument(s) (labels = dat$pdb).
为什么标签不起作用?
所以我试图保存我的输出,subprocess.call但我不断收到以下错误:
AttributeError: 'int' object has no attribute 'communicate'
代码如下:
p2 = subprocess.call(['./test.out', 'new_file.mfj', 'delete1.out'], stdout = PIPE)
output = p2.communicate[0]
Run Code Online (Sandbox Code Playgroud) 我目前有一个组件,看起来像:
import { Component } from '@angular/core';
@Component({
selector: 'home-about',
template: `
<div
fxFlex="50"
fxLayout="column"
fxLayoutAlign="center"
>
<div>
<h2>About This Site</h2>
</div>
<p>
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT …Run Code Online (Sandbox Code Playgroud) 可能重复:
随机加权选择
生成具有给定(数字)分布的随机数
我有一个列表列表,其中包含一系列数字和相关概率.
prob_list = [[1, 0.5], [2, 0.25], [3, 0.05], [4, 0.01], [5, 0.09], [6, 0.1]]
Run Code Online (Sandbox Code Playgroud)
例如,prob_list[0]数字1的概率为0.5,与之相关.所以你会期望1出现50%的时间.
当我选择数字时,如何为数字增加权重?
注意:列表中的数字量可以在6到100之间变化
编辑
在列表中,我有6个数字及其相关概率.我想根据它们的概率选择两个数字.
没有数字可以选择两次.如果选择"2",则无法再次选择.
我有一个由numpy生成的数组,如下所示:
[54.51399994 -12.10200024 -11.88099957]
[56.23899841 -8.30799961 -2.03500009]
我如何将其转换为列表?所以它看起来如下:
['54 .51399994',' - 12.10200024',' - 11.88099957']
['56 .23899841',' - 8.30799961',' - 2.03500009']
我有以下R输入文件:
car 1
car 2
car 3
car2 1
car2 2
car2 3
Run Code Online (Sandbox Code Playgroud)
然后我使用以下命令绘制我的图形:
autos_data < - read.table("〜/ Documents/R/test.txt",header = F)
dotchart(autos_data $ V2,autos_data $ V1)
但是,这会将每个汽车和汽车2的值绘制在一条新线上,如何绘制图表,以便所有汽车值都在一条线上,所有car2值都在另一条线上.
我试图在R中做一些密度图.我最初使用的是密度图,但我改为ggplot2中的密度图,因为我在视觉上更喜欢ggplot2.
所以我使用密度绘图函数进行了密度图,并在ggplot2中进行了密度图(见下文),但我发现这些图并不相同.看起来ggplot2(右图)中的某些y值已丢失或丢失.这有什么特别的原因吗?如何使ggplot与命运图相同(左图).

码:
library(ggplot2)
library(grid)
par(mfrow=c(1,2))
# de?ne function to create multi-plot setup (nrow, ncol)
vp.setup <- function(x,y){
grid.newpage()
pushViewport(viewport(layout = grid.layout(x,y)))
}
# de?ne function to easily access layout (row, col)
vp.layout <- function(x,y){
viewport(layout.pos.row=x, layout.pos.col=y)
}
vp.setup(1,2)
dat <- read.table(textConnection("
low high
10611.0 14195.0
10759.0 14437.0
10807.0 14574.0
10714.0 14380.0
10768.0 14448.0
10601.0 14239.0
10579.0 14218.0
10806.0 14510.0
"), header=TRUE, sep="\t")
plot(density(dat$low))
dat.low = data.frame(low2 = c(dat$low), lines = rep(c("low")))
low_plot_gg = (ggplot(dat.low, aes(x = low2, fill = …Run Code Online (Sandbox Code Playgroud) 我的程序遇到两个问题.下面的代码生成两个面板,它应该生成3.它生成panel1并panel2没有问题,但panel3应该在右边panel2是无处可见.Panel1并且panel2垂直分开我试图用panel2和做同样的事情panel3
我的第二个问题是我怎么下方产生另一面板panel1而不破坏之间的分割panel1和panel2再创造之间的分离器panel1和新创建的面板下面呢?
import wx
class Panels(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
hbox = wx.BoxSizer(wx.HORIZONTAL)
splitter = wx.SplitterWindow(self, -1)
vbox1 = wx.BoxSizer(wx.VERTICAL)
panel1 = wx.Panel(splitter, -1)
panel12 = wx.Panel(panel1, -1, style=wx.BORDER_SUNKEN)
st1 = wx.StaticText(panel12, -1, 'Panel 1', (5, 5))
vbox1.Add(panel12, 1, wx.EXPAND)
panel1.SetSizer(vbox1)
vbox2 = wx.BoxSizer(wx.VERTICAL)
panel2 = wx.Panel(splitter, -1)
panel22 = wx.Panel(panel2, -1, …Run Code Online (Sandbox Code Playgroud)