小编mac*_*389的帖子

如何在NumPy中堆叠不同长度的向量?

如何堆叠n形状的矢量形状(x,),其中x可以是任意数字?

例如,

from numpy import *
a = ones((3,))
b = ones((2,))

c = vstack((a,b)) # <-- gives an error
c = vstack((a[:,newaxis],b[:,newaxis])) #<-- also gives an error
Run Code Online (Sandbox Code Playgroud)

hstack 工作正常,但在错误的维度上连接.

python numpy

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

如何在matplotlib中只显示左边框和底边框?

我正在尝试在matplotlib中绘制数据.我想隐藏盒子的上部和右部.有谁知道如何做到这一点?

谢谢你的帮助

python plot matplotlib

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

使用BeautifulSoup从表中提取选定的列

我试图使用BeautifulSoup 提取此数据表的第一列和第三列.通过查看HTML,第一列有一个<th>标记.另一个感兴趣的列有<td>标记.在任何情况下,我所能得到的只是带有标签的列的列表.但是,我只想要文本.

table已经是一个列表,所以我不能使用findAll(text=True).我不知道如何以另一种形式获得第一列的列表.

from BeautifulSoup import BeautifulSoup
from sys import argv
import re

filename = argv[1] #get HTML file as a string
html_doc = ''.join(open(filename,'r').readlines())
soup = BeautifulSoup(html_doc)
table = soup.findAll('table')[0].tbody.th.findAll('th') #The relevant table is the first one

print table
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup html-parsing

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

如何抑制绘制树状图,但仍然聚集在seaborn?

我想在seaborn中绘制一个群集图,由行和列聚类.我不想绘制树形图.

设置row_cluster=Falsecol_cluster=False删除树形图,但也停止聚类.

我如何仍然2D聚类但抑制树形图?

这个问题提供了将树形图线的宽度设置为0的方法.这个hack在seaborn中不起作用0.7.1.

python seaborn

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

根据对角线对numpy矩阵进行排序

我有一个矩阵,应该在对角线上有一个但是列混合在一起.

搞砸了矩阵

但是,如果没有明显的for循环,我不知道如何有效地交换行以在对角线上获得统一.我甚至不确定我会通过什么钥匙来排序.

有什么建议?

python numpy matrix scipy

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

过滤Python长时间序列的最有效方法

我有一个很大的时间序列,比如1e10,这是由记录神经活动(即电压)引起的.在进行进一步分析之前,我想对300 Hz和7000 Hz之间的数据进行带通滤波.下面,我发布了我设计的Butterworth滤波器的代码.如何使此过滤器更快?运行需要很长时间.

更新:示例数据

是一个链接到数据,如将在每一行data.

至于格式化,每行代表不同的记录源,每列代表一个时间点.数据以20,000Hz采样.

 def butter_bandpass(lowcut,highcut,fs,order=8):
     nyq = 0.5*fs
     low = lowcut/nyq
     high = highcut/nyq

     b,a = butter(order, [low, high], btype='band')
     return b,a

 def butter_bandpass_filter(data,lowcut,highcut,fs,order=8):
     b,a = butter_bandpass(lowcut,highcut,fs,order=order)
     return lfilter(b,a,data) 

 print 'Band-pass filtering data'
 data = map(lambda channel: butter_bandpass_filter(channel,300,7000,20000),data)
Run Code Online (Sandbox Code Playgroud)

更新

与大多数NumPy一样,SciPy函数lfilter可以采用多维输入,因此map会产生不必要的开销.也就是说,人们可以重写

 data = map(lambda channel:butter_bandpass_filter(channel,300,7000,20000),data)
Run Code Online (Sandbox Code Playgroud)

 data = butter_bandpass_filter(data,300,7000,20000)
Run Code Online (Sandbox Code Playgroud)

默认情况下,lfilter操作在最后一个非单一轴上.对于2D矩阵,这意味着该函数应用于每一行,这正是我所需要的.可悲的是,它仍然太慢了.

python signal-processing numpy scientific-computing python-2.7

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

将矩阵的每列乘以另一个矩阵

我有一个M x N矩阵.我想NM x M矩阵乘以每列.以下是循环中的这个,但我不知道如何对其进行矢量化.

 u=repmat(sin(2*pi*f*t),[n 1]);
 W = rand(n);
 answer = size(u);
 for i=1:size(u,2)
   answer(:,i) = W*u(:,i);
 end
Run Code Online (Sandbox Code Playgroud)

matlab matrix vectorization matrix-multiplication

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

提取文件名shell脚本的一部分

在bash中我想提取许多文件名的一部分并将该输出保存到另一个文件中.

这些文件的格式为coffee_ {SOME NUMBERS I WANT} .freqdist.

#!/bin/sh
for f in $(find . -name 'coffee*.freqdist)
Run Code Online (Sandbox Code Playgroud)

该代码将找到所有coffee_ {SOME NUMBERS I WANT} .freqdist文件.现在,我如何创建一个只包含{SOME NUMBERS I WANT}的数组并将其写入文件?

我知道写入文件一将结束以下行.

  > log.txt
Run Code Online (Sandbox Code Playgroud)

我错过了如何过滤文件名列表的中间部分.

bash shell

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

加速NumPy的功能

我试图提取超过某个阈值的一维数组的所有值的索引.该数组大约为数量级1e9.

我的方法如下NumPy:

idxs = where(data>threshold) 
Run Code Online (Sandbox Code Playgroud)

这需要花费超过20分钟的时间,这是不可接受的.如何加快此功能?或者,有更快的替代品吗?

(具体而言,Mac OS X运行10.6.7,1.86 GHz Intel,4GB RAM需要很长时间.)

python performance numpy scientific-computing

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

基于重量着色网络x边缘

如何根据这些边的权重更改networkx中图形中边的颜色?

以下代码仅提供所有黑色边缘,即使色彩图是喷射的! (图片)

 nx.draw_networkx(g,pos=pos,with_labels=True,edge_colors=[g[a][b]['weight'] for a,b in g.edges()], width=4,edge_cmap = plt.cm.jet)
Run Code Online (Sandbox Code Playgroud)

将边权重缩放到0到1之间不会改变任何东西.

我不确定上面的代码与相关问题中的代码有什么不同,除了我没有使用循环,draw_networkx因为我没有动画图.

python matplotlib networkx

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