Tag: numpy

如何规范一个NumPy数组在一定的范围内?

在对audio或图像arrays进行一些处理之后,需要在一定的范围内进行归一化处理,然后才能将其写回文件。 这可以这样做: # Normalize audio channels to between -1.0 and +1.0 audio[:,0] = audio[:,0]/abs(audio[:,0]).max() audio[:,1] = audio[:,1]/abs(audio[:,1]).max() # Normalize image to between 0 and 255 image = image/(image.max()/255.0) 有没有一个较为详细,方便的function方式来做到这一点? matplotlib.colors.Normalize()似乎没有关系。

如何将数据从一个numpy数组复制到另一个数组

将数组b中的数据复制到数组a的最快方法是什么,而不需要修改数组a的地址。 我需要这个,因为外部库(PyFFTW)使用指向我的数组,不能改变的指针。 例如: a = numpy.empty(n, dtype=complex) for i in xrange(a.size): a[i] = b[i] 有可能没有循环呢?

Python中的meshgrid的目的是什么?

有人可以向我解释在Numpy中meshgrid的用途是什么? 我知道它为绘图创build了某种坐标网格,但我不能真正看到它的直接好处。 我正在学习“Python机器学习”(来自Sebastian Raschka),他正在使用它来绘制决策边界 – 请参见input法11。 编辑 我也从官方文档中试过这个代码,但是输出结果对我来说并不合适。 x = np.arange(-5, 5, 1) y = np.arange(-5, 5, 1) xx, yy = np.meshgrid(x, y, sparse=True) z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2) h = plt.contourf(x,y,z) 编辑2 请尽可能展示更真实的示例,因为@Suever已经很好地解释了这个function。

PIP安装Numpy引发错误“ASCII编解码器无法解码字节0xe2”

我在新build的计算机上安装了新安装的Ubuntu。 我刚刚使用apt-get安装了python-pip。 现在当我尝试点子安装Numpy和pandas,它会给出以下错误。 我在SO和Google的相当一部分地方看到了这个错误,但是我一直没有find解决办法。 有人提到这是一个错误,一些线程已经死了…发生了什么事? Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==1.5.4', 'console_scripts', 'pip')() File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 185, in main return command.main(cmd_args) File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main text = '\n'.join(complete_log) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128)

Pandas Dataframe / Numpy Array“轴”定义中的歧义

我很困惑如何定义python轴,以及它们是否引用DataFrame的行或列。 考虑下面的代码: >>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"]) >>> df col1 col2 col3 col4 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 所以如果我们调用df.mean(axis=1) ,我们将在行之间得到一个平均值: >>> df.mean(axis=1) 0 1 1 2 2 3 但是,如果我们调用df.drop(name, axis=1) ,我们实际上删除了一列而不是一行: […]

在磁盘上保存numpy数组的最佳方法

我正在寻找一个快速的方法来保存大的numpy数组。 我想将它们以二进制格式保存到磁盘,然后相对快速地将它们读回到内存中。 cPickle不够快,不幸的是。 我发现numpy.savez和numpy.load 。 但奇怪的是,numpy.load将一个npy文件加载到“memory-map”中。 这意味着对数组的操作确实很慢。 例如,这样的事情会很慢: #!/usr/bin/python import numpy as np; import time; from tempfile import TemporaryFile n = 10000000; a = np.arange(n) b = np.arange(n) * 10 c = np.arange(n) * -0.5 file = TemporaryFile() np.savez(file,a = a, b = b, c = c); file.seek(0) t = time.time() z = np.load(file) print […]

为什么numpy std()会给matlab std()一个不同的结果?

我尝试将matlab代码转换为numpy,并发现numpy与std函数有不同的结果。 在matlab中 std([1,3,4,6]) ans = 2.0817 在numpy np.std([1,3,4,6]) 1.8027756377319946 这是正常的吗? 我该如何处理呢?

如何在64位Windows上安装SciPy?

我如何在我的系统上安装SciPy? 对于NumPy部分(SciPy依赖于),实际上是64位Windows的安装程序: numpy-1.3.0.win-amd64-py2.6.msi (是直接下载URL,2310144字节)。 运行SciPy超级包安装程序会在对话框中显示以下消息: 无法安装。 需要Python版本2.6,这在registry中找不到。 我已经安装了Python 2.6.2(并在其中安装了一个可用的Django安装),但我不知道任何registry故事。 registry项似乎已经存在: REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Python] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help\Main Python Documentation] @="D:\\Python262\\Doc\\python262.chm" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath] @="D:\\Python262\\" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup] @="Python 2.6" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Modules] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\PythonPath] @="D:\\Python262\\Lib;D:\\Python262\\DLLs;D:\\Python262\\Lib\\lib-tk" 我到目前为止所做的: 步骤1 下载了NumPy superpack安装程序numpy-1.3.0rc2-win32-superpack-python2.6.exe( 直接下载URL ,4782592字节)。 运行这个安装程序会产生相同的信息:“无法安装,需要Python 2.6,这在registry中找不到。” 更新 :实际上NumPy的安装程序是有效的 – 请参阅问题的开头部分。 第2步 试图以另一种方式安装NumPy。 下载压缩包numpy-1.3.0rc2.zip( 直接下载url ,2404011字节),以正常的方式解压到一个临时目录D:\ temp7 \ numpy-1.3.0rc2(其中setup.py和README .txt是)。 然后我打开了一个命令行窗口,并且: d: cd D:\temp7\numpy-1.3.0rc2 setup.py install 这跑了很长时间,还包括使用cl.exe(Visual […]

Numpy首次出现的值大于现有值

我在numpy中有一个1D数组,我想find一个值超过numpy数组值的索引位置。 例如 aa = range(-10,10) find位置在哪里,价值5被超过。

使用LAPACK分配基于Cython的扩展

我正在编写一个包含Cython扩展的Python模块,并使用LAPACK (和BLAS )。 我愿意使用clapack或lapacke ,或者某种f2py或f2py解决scheme。 重要的是,我可以在没有Python调用开销的情况下,在紧密的循环中调用lapack和blas例程。 我在这里find一个例子。 但是,这个例子取决于SAGE。 我希望我的模块可以在不安装SAGE的情况下进行安装,因为我的用户不太可能想要或者不需要SAGE。 我的用户可能会安装像numpy,scipy,pandas和scikit这样的软件包,所以这些都是合理的依赖关系。 什么是使用接口的最佳组合,最小的setup.py文件是什么样的,可以从编译中获取必要的信息(从numpy,scipy等)? 编辑:这是我最终做的。 它适用于我的MacBook,但我不知道它是多么便携。 当然有更好的方法。 from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext import numpy from Cython.Build import cythonize from numpy.distutils.system_info import get_info # TODO: This cannot be the right way blas_include = get_info('blas_opt')['extra_compile_args'][1][2:] includes = [blas_include,numpy.get_include()] setup( cmdclass = {'build_ext': build_ext}, […]