我有一个复杂的算法,可以更新存储在数组中的3个直方图.我想调试我的算法,所以我想在用户界面中将数组显示为直方图.最简单的方法是什么?(快速应用程序开发比优化代码更重要.)
我有一些Qt(在C++中)的经验和matplotlib的一些经验.
(我将暂时搁置这个问题一两天,因为我很难在没有更多经验的情况下评估解决方案.希望社群的投票能帮助我们选择最佳答案.)
我正在处理通过numpy.array()创建的数组,我需要在模拟图像的画布上绘制点.由于在包含有意义数据的数组中心部分周围有很多零值,我想"修剪"数组,删除仅包含零的行和仅包含零的行.
所以,我想知道一些本地numpy函数甚至是一个代码片段来"修剪"或找到一个"边界框"来仅切片数组中包含数据的部分.
(因为这是一个概念性的问题,我没有提出任何代码,对不起,如果我应该,我很新鲜在SO上发帖.)
谢谢阅读
简介:我是生物信息学家.在我对所有人类基因(约20 000)进行的分析中,我搜索特定的短序列基序,以检查每个基因中出现这个基序的次数.
基因以四个字母(A,T,G,C)的线性序列"书写".例如:CGTAGGGGGTTTAC ......这是遗传密码的四个字母的字母表,就像每个细胞的秘密语言一样,它就是DNA实际存储信息的方式.
我怀疑在一些基因中频繁重复特定的短基序列(AGTGGAC)在细胞的特定生化过程中是至关重要的.由于基序本身非常短,因此用计算工具很难区分基因中的真实功能性实例和偶然看起来相似的实例.为了避免这个问题,我得到了所有基因的序列并连接成一个字符串并进行了改组.存储每个原始基因的长度.然后,对于每个原始序列长度,通过从连接序列中随机重复地挑选A或T或G或C并将其转移到随机序列来构建随机序列.以这种方式,得到的随机序列组具有相同的长度分布,以及总体A,T,G,C组成.然后我在这些随机序列中搜索主题.我将此程序置于1000次并对结果取平均值.
15000个不含给定基序的基因5000个基因含有1个基序3000个基因,含有2个基序1000个含有3个基序的基因... 1个含有6个基序的基因
因此,即使经过1000次真正遗传密码的随机化,也没有任何基因具有超过6个基序.但是在真正的遗传密码中,有一些基因含有超过20个基序的出现,这表明这些重复可能是有效的,并且它不可能通过纯粹的机会找到它们如此丰富.
问题:我想知道找到一个基因的可能性,假设我的分布中出现了20个基序.所以我想知道偶然发现这样一个基因的可能性.我想在Python中实现它,但我不知道如何.
我可以在Python中进行这样的分析吗?
任何帮助,将不胜感激.
我有两个从PIL图像转换的Numpy数组(3维uint8).
我想查找第一个图像是否包含第二个图像,如果是,请找出匹配所在的第一个图像内左上角像素的坐标.
有没有办法在Numpy中以足够快的方式完成这个,而不是使用(4!非常慢)纯Python循环?
2D示例:
a = numpy.array([
[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]
])
b = numpy.array([
[2, 3],
[6, 7]
])
Run Code Online (Sandbox Code Playgroud)
怎么做这样的事情?
position = a.find(b)
Run Code Online (Sandbox Code Playgroud)
position那会是(0, 2).
在numpy或scipy(或其他一些库)中是否存在将cumsum和cumprod的概念概括为任意函数的函数.例如,考虑(理论)函数
cumf( func, array)
Run Code Online (Sandbox Code Playgroud)
func是一个接受两个浮点数的函数,并返回一个浮点数.特殊情况
lambda x,y: x+y
Run Code Online (Sandbox Code Playgroud)
和
lambda x,y: x*y
Run Code Online (Sandbox Code Playgroud)
分别是cumsum和cumprod.例如,如果
func = lambda x,prev_x: x^2*prev_x
Run Code Online (Sandbox Code Playgroud)
我将它应用于:
cumf(func, np.array( 1, 2, 3) )
Run Code Online (Sandbox Code Playgroud)
我想要
np.array( 1, 4, 9*4 )
Run Code Online (Sandbox Code Playgroud) 我对这个模块(scipy.cluster.hierarchy)感到困惑......还有一些!
例如,我们有以下树形图:

我的问题是如何以一种漂亮的格式提取彩色子树(每个子树代表一个簇),比如SIF格式?现在获得上述情节的代码是:
import scipy
import scipy.cluster.hierarchy as sch
import matplotlib.pylab as plt
scipy.randn(100,2)
d = sch.distance.pdist(X)
Z= sch.linkage(d,method='complete')
P =sch.dendrogram(Z)
plt.savefig('plot_dendrogram.png')
T = sch.fcluster(Z, 0.5*d.max(), 'distance')
#array([4, 5, 3, 2, 2, 3, 5, 2, 2, 5, 2, 2, 2, 3, 2, 3, 2, 5, 4, 5, 2, 5, 2,
# 3, 3, 3, 1, 3, 4, 2, 2, 4, 2, 4, 3, 3, 2, 5, 5, 5, 3, 2, 2, 2, 5, 4,
# 2, 4, 2, 2, 5, …Run Code Online (Sandbox Code Playgroud) 我在matplotlib中使用matshow(),默认情况下生成的数字顶部有xticklabels.有没有办法把xticklabels放在底部?
感谢任何帮助./ M
我试图使用多处理运行一个简单的测试.测试工作正常,直到我导入numpy(即使它没有在程序中使用).这是代码:
from multiprocessing import Pool
import time
import numpy as np #this is the problematic line
def CostlyFunc(N):
""""""
tstart = time.time()
x = 0
for i in xrange(N):
for j in xrange(N):
if i % 2: x += 2
else: x -= 2
print "CostlyFunc : elapsed time %f s" % (time.time() - tstart)
return x
#serial application
ResultList0 = []
StartTime = time.time()
for i in xrange(3):
ResultList0.append(CostlyFunc(5000))
print "Elapsed time (serial) : ", time.time() - StartTime
#multiprocessing …Run Code Online (Sandbox Code Playgroud) 我的Python代码是:
values = [234, 64, 54,10, 0, 1, 0, 9, 2, 1, 7, 7]
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul','Aug','Sep','Oct', 'Nov','Dec']
colors = ['yellowgreen', 'red', 'gold', 'lightskyblue',
'white','lightcoral','blue','pink', 'darkgreen',
'yellow','grey','violet','magenta','cyan']
plt.pie(values, labels=labels, autopct='%1.1f%%', shadow=True,
colors=colors, startangle=90, radius=1.2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
是否可以显示标签"Jan","Feb","Mar"等以及百分比,或者:
arrow mark?
在numpy中使用该.T属性获取转置版本是非常方便的ndarray.然而,没有类似的方法来获得共轭转置.Numpy的矩阵类有.H运算符,但不是ndarray.因为我喜欢可读的代码,而且因为我总是懒得写.conj().T,所以我希望这个.H属性永远都可供我使用.如何添加此功能?是否有可能添加它以便每次进口numpy时都可以无脑地使用它?
(类似的问题可以通过询问.I逆运算符.)
python ×10
numpy ×9
matplotlib ×3
scipy ×3
arrays ×2
plot ×2
bounding ×1
cumsum ×1
image ×1
matrix ×1
pie-chart ×1
probability ×1
pyqt ×1
python-2.7 ×1
statistics ×1
trim ×1
vispy ×1