小编LWZ*_*LWZ的帖子

Python SciPy卷积与fftconvolve

我知道一般来说,当阵列比较大时,FFT and multiplication通常比直接convolve操作更快.然而,我正在卷入一个非常长的信号(比如1000万点),响应非常短(比如1000点).在这种情况下,fftconvolve似乎没有多大意义,因为它迫使第二阵列的FFT与第一阵列的大小相同.在这种情况下直接卷积是否更快?

python fft convolution scipy

8
推荐指数
3
解决办法
7505
查看次数

Python,如何将不等长的嵌套列表写入csv文件?

假设我有一个结构如下的numpy数组:

[['a','b','c'],[1,2,3],['i','j','k','l'],[5,10,15,20]]
Run Code Online (Sandbox Code Playgroud)

我想将它保存到一个看起来像这样的csv文件

a, 1, i, 5
b, 2, j, 10
c, 3, k, 15
,  ,  l, 20
Run Code Online (Sandbox Code Playgroud)

长度较短的列只需填空.我怎样才能做到这一点?

python csv numpy list

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

如何在显示情节/图形的同时继续执行python脚本?

可能重复:
有没有办法分离matplotlib图,以便计算可以继续?

我使用python和matplotlib进行科学编程.但每当我使用命令show()显示绘图时,脚本就会停在那里.我必须关闭脚本的图形窗口才能继续执行.有没有办法让图形窗口打开时保持脚本运行,就像在Matlab中一样?

python matplotlib

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

在Python中如何在混合列表中将数字转换为float

我有一个表格中的字符串列表,如

a = ['str','5','','4.1']
Run Code Online (Sandbox Code Playgroud)

我想将列表中的所有数字转换为浮点数,但保持其余数字不变,就像这样

a = ['str',5,'',4.1]
Run Code Online (Sandbox Code Playgroud)

我试过了

map(float,a)
Run Code Online (Sandbox Code Playgroud)

但显然它给了我一个错误,因为一些字符串不能转换为浮点数.我也试过了

a[:] = [float(x) for x in a if x.isdigit()]
Run Code Online (Sandbox Code Playgroud)

但它只给了我

[5]
Run Code Online (Sandbox Code Playgroud)

所以浮点数和所有其他字符串都会丢失.我该怎么做才能同时保留字符串和数字?

python string list

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

numpy中3维矩阵的乘法

我想昨天我问错了问题。我真正想要的是将两个2x2xN矩阵加AB,这样

C[:,:,i] = dot(A[:,:,i], B[:,:,i])
Run Code Online (Sandbox Code Playgroud)

例如,如果我有一个矩阵

A = np.arange(12).reshape(2, 2, 3)
Run Code Online (Sandbox Code Playgroud)

如何获得C = A x A上述定义?有内置的功能可以做到这一点吗?


另外,如果我乘A (shape 2x2xN)B (shape 2x2x1, instead of N),我想

C[:,:,i] = dot(A[:,:,i], B[:,:,1])
Run Code Online (Sandbox Code Playgroud)

python numpy matrix matrix-multiplication

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

为什么`print`内容不能在终端中立即显示?

我有一个用于仿真的python脚本,一个for循环要花很长时间,每个循环要花不同的时间,因此我.在每个循环后打印一个,以监视它运行的速度和经过的时间。for脚本运行时的声明。

for something:
    do something
    print '.',
Run Code Online (Sandbox Code Playgroud)

但是,当我在终端中的iPython中运行脚本时,点并不会一一打印,而是在循环结束时一次打印所有点,这使整个过程变得毫无意义。如何在运行时内联打印点?

python macos terminal ipython

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

pip list 和 sudo pip list 显示不同的包版本

我有一台 Mac,我安装了 Python,Homebrew我安装了pip. 但是当我调用pip listand时我发现sudo pip list,它实际上给出了不同的包版本。例如,我sudo pip listpip list. 这是什么意思?我是否安装了两个版本?

我发现的原因是因为我升级某些包时,系统拒绝了权限,所以我使用了sudo,我做错了吗?

python macos sudo pip

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

如何在Matlab中创建指向对象的指针数组?

我正在写一个Matlab脚本,我有一堆相同的自定义的类,比如对象的A,BC.然后我有一个函数可以处理2个对象中的任何一个,比如func(A,B).

现在我想选择一个对象,比如说A,然后func(A,x)通过所有其他对象.所以基本上可以实现以下目

func(A,B)
func(A,C)
A.update()

func(B,A)
func(B,C)
B.update()

...
Run Code Online (Sandbox Code Playgroud)

所以我需要创建一个包含所有可以循环的对象的数组,当然也要排除它自己.我尝试用单元格数组做,所以我有:

AllObjs = {A,B,C}
for i=1:length(AllObjs)
  if ~isequal(A, AllObjs{i})
    func(A, AllObjs{i})
  end
end
A.update()
Run Code Online (Sandbox Code Playgroud)

但是,A更新时,Ain AllObjs不会获得更新.因此,对于下一个循环,我必须创建一个包含所有对象的新数组.它在这个简单的例子中是可行的,但是当对象在别处更新时是不可管理的.所以我希望有一个指向所有对象的指针数组.我的Google搜索告诉我Matlab中没有指针,但有没有办法实现我想要做的事情?

arrays matlab pointers object

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

在Python中,如何将浮点数列表转换为具有特定格式的字符串?

我有一个浮点数元组的列表,类似于

[ (1.00000001, 349183.1430, 2148.12222222222222), ( , , ), ..., ( , ,) ]
Run Code Online (Sandbox Code Playgroud)

如何将所有数字转换为字符串,具有相同的格式(科学记数法,精确到8位小数),同时保持相同的结构(元组列表或列表列表)?

我想我可以用嵌套for循环来做,但是有一种更简单的方法,比如使用map某种方式?

python string floating-point python-2.7

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

使用images2gif.py创建GIF时出现Numpy错误

我正在尝试使用visvis包中的images2fig.py创建一个GIF文件

有了这个非常简单的代码

import glob
from PIL import Image
from visvis.vvmovie.images2gif import writeGif

images = [Image.open(image) for image in glob.glob("*.png")]
filename = "test.gif"
writeGif(filename, images, duration=0.2)
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误

    writeGif(filename, images, duration=0.2)
  File "C:\Python27\lib\site-packages\visvis\vvmovie\images2gif.py", line 570, in writeGif
    images = gifWriter.convertImagesToPIL(images, dither, nq)
  File "C:\Python27\lib\site-packages\visvis\vvmovie\images2gif.py", line 373, in convertImagesToPIL
    im = Image.fromarray(im,'RGB')
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 1937, in fromarray
    obj = obj.tobytes()
AttributeError: 'numpy.ndarray' object has no attribute 'tobytes'
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我该如何解决?

我使用的是Python 2.7.5,PIL 2.0.0-1,numpy 1.7.1-2,所有都是Python(x,y)2.7.5的标准安装,以及最新版本的visvis 1.8.

python image gif python-imaging-library

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