标签: scipy

AttributeError:'module'对象(scipy)没有属性'misc'

我从ubuntu 12.04更新到ubuntu 12.10并且我突然写的python模块不再使用模块scipy没有属性'misc'的错误消息.这工作以前.我在更新后仍在使用python 2.7.这是代码崩溃的地方

import scipy
scipy.misc.imsave(slice,dat)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python scipy

45
推荐指数
3
解决办法
5万
查看次数

使用SciPy或NumPy生成具有指定权重的离散随机变量

我正在寻找一个简单的函数,它可以根据相应的(也是指定的)概率生成指定随机值的数组.我只需要它来生成浮点值,但我不明白为什么它不能生成任何标量.我可以想到从现有函数构建这个函数的许多方法,但我想我可能只是错过了一个明显的SciPy或NumPy函数.

例如:

>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)
Run Code Online (Sandbox Code Playgroud)

注意:我发现了scipy.stats.rv_discrete,但我不明白它是如何工作的.具体来说,我不明白这(下面)的含义是什么,也不应该做什么:

numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs
Run Code Online (Sandbox Code Playgroud)

如果rv_discrete是我应该使用的,你能否提供一个简单的例子和​​对上述"形状"陈述的解释?

python random numpy scipy

44
推荐指数
4
解决办法
3万
查看次数

Python虚拟主机:Numpy,Matplotlib,科学计算

我在Numpy/Scipy/Matplotlib中编写科学软件.在家用计算机上开发应用程序后,我现在对编写简单的Web应用程序感兴趣.示例:用户上传图像或音频文件,我的程序使用Numpy/Scipy处理它,输出使用Matplotlib显示在浏览器上,或者用户可以下载已处理的文件.

我已经支付了安装了Python 2.4.3的托管,但没有Numpy/Scipy.我也没有通过命令行访问shell.只需拖放FTP即可.非常有限,但我可以使用简单的Python/CGI脚本.

令人惊讶的是,网络搜索显示很少有适合网络托管的选项,内置了这些功能.(如果我错了,请指导我.)我正在学习Google App Engine,但我仍然没有完全了解它工具和限制.什么是网络告诉我的是,别人也有类似的担忧.

希望找到解决方案,我想我会向这个令人敬畏的SO社区提出这些简单的问题:

  1. 是否有一种简单的方法可以将numpy(或任何第三方软件包/库)安装到我已经托管的空间中?我知道托管空间上的Python路径,我知道家用计算机上的相关Python/Numpy目录.我可以简单地复制文件并让它工作吗?本地和远程系统都运行Ubuntu.

  2. 存在Numpy/Matplotlib的托管站点(免费或付费),或者如果没有安装,是否可以安装它?是否有任何文档化的站点可以使用工作应用程序引用,无论多么简单?

  3. Google App Engine能以任何方式帮助我吗?还是完全是为了别的什么?你或其他人用它来编写Python/Numpy中的科学应用程序吗?如果是这样,你能参考一下吗?

谢谢您的帮助.

编辑:在下面的有用答案之后,我在Slicehost购买了20美元的计划,到目前为止我喜欢它!(我首先尝试使用Amazon EC2.我必须是愚蠢的,但我无法让它工作.)使用Apache设置Ubuntu服务器需要花费几个小时(我是Apache新手).它允许我完成我想要的Python以及更多.我现在也拥有自己的版本控制远程存储库.再次感谢!

编辑2:近两年后,我尝试了Linode和EC2(再次).Linode很棒.这次EC2似乎更容易 - 也许它只是增加了经验,或者可能是亚马逊对AWS管理控制台所做的改进.对于那些对Numpy/Scipy/Matplotlib/Audiolab感兴趣的人,每当我启动EC2实例时,这是我的Ubuntu备忘单:

ec2:~$ sudo aptitude install build-essential python-scipy ipython 
       python-matplotlib python-dev python-setuptools libsndfile-dev 
       libasound2-dev mysql-server python-mysqldb 

Upload scikits.audiolab-0.11.0

ec2:~/scikits.audiolab-0.11.0$ sudo python setup.py install

ec2:~$ sudo rm -rf scikits.audiolab-0.11.0

ec2:~$ nano .ipython/ipy_user_conf.py

ip.ex('import matplotlib; matplotlib.use("Agg"); import scipy, pylab, 
       scipy.signal as sig, scipy.linalg as lin, scipy.sparse as spar, 
       os, sys, MySQLdb, boto; from scikits import audiolab')

import ipy_greedycompleter

import ipy_autoreload
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib scipy

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

使用NumPy进行快速张量旋转

应用程序的核心(用Python编写并使用NumPy)我需要旋转4阶张量.实际上,我需要多次旋转很多张量,这是我的瓶颈.我的天真实现(下面)涉及八个嵌套循环似乎相当慢,但我看不到一种方法来利用NumPy的矩阵运算,并希望加快速度.我有一种感觉,我应该使用np.tensordot,但我不知道如何.

在数学上,旋转张量,T的元素"由下式给出:T" IJKL =Σ克IAJBKCLD Ť ABCD与和被过在右手侧上的重复指数.T和Tprime是3*3*3*3个NumPy阵列,旋转矩阵g是3*3 NumPy阵列.我执行缓慢(每次通话约0.04秒)如下.

#!/usr/bin/env python

import numpy as np

def rotT(T, g):
    Tprime = np.zeros((3,3,3,3))
    for i in range(3):
        for j in range(3):
            for k in range(3):
                for l in range(3):
                    for ii in range(3):
                        for jj in range(3):
                            for kk in range(3):
                                for ll in range(3):
                                    gg = g[ii,i]*g[jj,j]*g[kk,k]*g[ll,l]
                                    Tprime[i,j,k,l] = Tprime[i,j,k,l] + \
                                         gg*T[ii,jj,kk,ll]
    return Tprime

if __name__ == "__main__":

    T = …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy rotation scipy

43
推荐指数
4
解决办法
5605
查看次数

计算不规则间隔点密度的有效方法

我正在尝试生成有助于识别热点的地图叠加图像,即地图上具有高密度数据点的区域.我尝试过的方法都没有足够快我的需求.注意:我忘了提到算法在低和高变焦场景(或低和高数据点密度)下都能正常工作.

我查看了numpy,pyplot和scipy库,我能找到的最接近的是numpy.histogram2d.如下图所示,histogram2d输出相当粗糙.(每个图像都包含覆盖热图的点以便更好地理解)

在此输入图像描述 我的第二次尝试是迭代所有数据点,然后计算作为距离函数的热点值.这样可以产生更好看的图像,但是在我的应用程序中使用它太慢了.因为它是O(n),所以100分可以正常工作,但是当我使用30000点的实际数据集时会爆炸.

我最后的尝试是将数据存储在KDTree中,并使用最近的5个点来计算热点值.这个算法是O(1),大数据集的速度要快得多.它仍然不够快,生成256x256位图需要大约20秒,我希望这可以在大约1秒钟内发生.

编辑

6502提供的boxsum平滑解决方案在所有缩放级别都能很好地工作,并且比我原来的方法快得多.

Luke和Neil G提出的高斯滤波器解决方案是最快的.

您可以在下面看到所有四种方法,总共使用1000个数据点,在3倍变焦处可见约60个点.

在此输入图像描述

生成原始3次尝试的完整代码,由6502提供的boxsum平滑解决方案和Luke建议的高斯滤波器(改进以更好地处理边缘并允许放大)在这里:

import matplotlib
import numpy as np
from matplotlib.mlab import griddata
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import math
from scipy.spatial import KDTree
import time
import scipy.ndimage as ndi


def grid_density_kdtree(xl, yl, xi, yi, dfactor):
    zz = np.empty([len(xi),len(yi)], dtype=np.uint8)
    zipped = zip(xl, yl)
    kdtree = KDTree(zipped)
    for xci in range(0, len(xi)):
        xc = xi[xci]
        for yci in range(0, len(yi)):
            yc = yi[yci]
            density = 0.
            retvalset = kdtree.query((xc,yc), k=5) …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib scipy

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

Scipy Normaltest如何使用?

如果数据集是正态分布,我需要在scipy中使用normaltest进行测试.但我似乎无法找到任何好的例子如何使用scipy.stats.normaltest.

我的数据集有超过100个值.

python scipy

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

在给定一组坐标的情况下计算曲线下面积,而不知道函数

我有一个100个数字的列表作为Y轴的高度,并且作为X轴的长度:1到100,常数步长为5.我需要计算它包含的区域(x,y)点和X轴,使用矩形和Scipy.我是否必须找到此曲线的功能?或不?...我读过的几乎所有例子都是关于Y轴的特定方程.就我而言,没有等式,只有列表中的数据.经典的解决方案是通过步骤X距离添加或Y点和倍数...使用Scipy任何想法?

请问,任何人都可以使用Scipy和Numpy推荐任何专注于数值(有限初等)方法的书吗?...

python numpy area scipy

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

Python:元组的情节列表

我有以下数据集.我想用python或gnuplot来绘制数据.元组的形式为(x,y).Y轴应为对数轴.IE日志(y).散点图或线图是理想的.

如何才能做到这一点?

 [(0, 6.0705199999997801e-08), (1, 2.1015700100300739e-08), 
 (2, 7.6280656623374823e-09), (3, 5.7348209304555086e-09), 
 (4, 3.6812203579604238e-09), (5, 4.1572516753310418e-09)]
Run Code Online (Sandbox Code Playgroud)

python numpy gnuplot matplotlib scipy

43
推荐指数
4
解决办法
7万
查看次数

Matplotlib:指定刻度标签的浮点数格式

我试图在matplotlib子图环境中将格式设置为两个十进制数.不幸的是,我不知道如何解决这个任务.

为了防止在y轴上使用科学记数法,我ScalarFormatter(useOffset=False)可以在下面的代码片段中看到.我认为我的任务应该通过将更多的选项/参数传递给使用的格式化程序来解决.但是,我在matplotlib的文档中找不到任何提示.

如何设置两位小数或无(两种情况都需要)?遗憾的是,我无法提供样本数据.


- SNIPPET -

f, axarr = plt.subplots(3, sharex=True)

data = conv_air
x = range(0, len(data))

axarr[0].scatter(x, data)
axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
axarr[0].yaxis.set_major_locator(MaxNLocator(5))
axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[0].grid(which='major', alpha=0.5)
axarr[0].grid(which='minor', alpha=0.2)

data = conv_dryer
x = range(0, len(data))

axarr[1].scatter(x, data)
axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
axarr[1].yaxis.set_major_locator(MaxNLocator(5))
axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[1].grid(which='major', alpha=0.5)
axarr[1].grid(which='minor', alpha=0.2)

data = conv_lambda
x = range(0, len(data))

axarr[2].scatter(x, data)
axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[2].yaxis.set_major_locator(MaxNLocator(5))
axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[2].grid(which='major', alpha=0.5)
axarr[2].grid(which='minor', alpha=0.2)
Run Code Online (Sandbox Code Playgroud)

python matplotlib scipy python-3.x

43
推荐指数
5
解决办法
9万
查看次数

在numpy和scipy中的因子

如何从numpy和scipy中分别导入阶乘函数,以便查看哪一个更快?

我已经通过导入数学从python本身导入了factorial.但是,它不适用于numpy和scipy.

python numpy scipy

42
推荐指数
4
解决办法
10万
查看次数

标签 统计

python ×10

scipy ×10

numpy ×7

matplotlib ×4

area ×1

gnuplot ×1

optimization ×1

python-3.x ×1

random ×1

rotation ×1