【python – Numpy表 – 高级多标准选择】教程文章相关的互联网学习教程文章

python-取消numpy数组操作(包括标量)【代码】

我正在使用NumPy 1.7.1版.现在我遇到了一个我不明白的奇怪取消:>>> import numpy as np >>> a = np.array([ 883, 931, 874], dtype=np.float32)数学上0.1-a应该是0.1.现在让我们计算一下这个表达式以及绝对和相对误差:>>> a+0.1-a array([ 0.09997559, 0.09997559, 0.09997559], dtype=float32) >>> (a+0.1-a)-0.1 array([ -2.44155526e-05, -2.44155526e-05, -2.44155526e-05], dtype=float32) >>> ((a+0.1-a)-0.1) / 0.1...

python-在循环中附加具有不同维度的numpy ndarrays【代码】

我需要附加在每个循环中创建的数组,以便最后获得单个ndarray.代码结构如下:for...:...for...:list1 = array([some_math_here])list2.append(list1)#each loop creats a list, converting it to array() gives different shaped arrays:array(list2).shape(2939, 4)(2942, 4)(2027, 4)(2030, 4)#list3 collects all the generated resultslist3.append(list2)问:我如何拥有n * 4列和不同行数的数组而不是list3? 我尝试通过创建一...

python-来自numpy.linalg.svd的MemoryError用于大型矩阵【代码】

以下命令在Windows 7 Ultimate SP1 x64,Python 3.3.3 x64,numpy 1.8.0和16GB内存的计算机上将失败,这似乎足以完成任务.而且它在群集上也失败.python -c "import numpy as np;np.linalg.svd(np.random.random((25000,10000)))"关于原因有什么想法吗?谢谢.解决方法:我认为您刚刚达到了RAM的极限:我在Linux机器(64Gb RAM)上运行此命令,该进程占用了14.4 Gb.如果您有一台16Gb的计算机,那么其中的一部分将被操作系统和其他东西占用,因...

python-NumPy-将数组重塑为一维【代码】

我在将NumPy数组转换为1-D时遇到问题.我调查了在SO上发现的想法,但问题仍然存在.nu = np.reshape(np.dot(prior.T, randn(d)), -1) print 'nu1', str(nu.shape) print nu nu = nu.ravel() print 'nu2', str(nu.shape) print nu nu = nu.flatten() print 'nu3', str(nu.shape) print nu nu = nu.reshape(d) print 'nu4', str(nu.shape) print nu该代码产生以下输出:nu1 (1, 200) [[-0.0174428 -0.01855013 ... 0.01137508 0.00577...

python numpty 中shape的用法,numpy.array 的shape属性理解【代码】

numpy 创建的数组都有一个shape属性,它是一个元组,返回各个维度的维数。有时候我们可能需要知道某一维的特定维数。 二维>>> import numpy as np >>> y = np.array([[1,2,3],[4,5,6]]) >>> print(y) [[1 2 3][4 5 6]] >>> print(y.shape) (2, 3) >>> print(y.shape[0]) 2 >>> print(y.shape[1]) 3 y是一个两行三列的二维数组,y.shape[0]代表行数,y.shape[1]代表列数。 三维>>> x = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[0...

寻求更有效的python numpy ravel重塑【代码】

我很好奇是否有更好的方法可以使numpy ravel重塑.我加载一大堆大图像,并得到一个形状数组(num-rasters,h,w),其中num-rasters是图像的数量,h / w是图像的高度/宽度(都相同)尺寸).我希望将数组转换为形状(h * w,num-rasters) 这是我现在做的方式:res = my_function(some_variable) #(num-rasters, h, w)res = res.ravel(order='F').reshape((res.shape[1] * res.shape[2], res.shape[0])) #(h*w, num-rasters)它工作正常,但是我的“...

python-重新采样并调整numpy数组的大小【代码】

我想按照这里的建议重新采样一个numpy数组Resampling a numpy array representing an image,但是这种重新采样将以一个因素进行,即x = np.arange(9).reshape(3,3) print scipy.ndimage.zoom(x, 2, order=1)将创建(6,6)的形状,但是如何在(4,6),(6,8)或(6,10)形状内重新采样数组以使其达到最佳近似度?解决方法:而不是将单个数字传递给zoom参数,而是给出一个序列:scipy.ndimage.zoom(x, zoom=(1.5, 2.), order=1) #array([[0, 0, 1, ...

python-优化Cython代码以进行numpy方差计算【代码】

我正在尝试优化我的cython代码,似乎还有很多改进的余地,这是IPython笔记本中%prun扩展的配置文件的一部分:7016695 function calls in 18.475 secondsOrdered by: internal timencalls tottime percall cumtime percall filename:lineno(function)400722 7.723 0.000 15.086 0.000 _methods.py:73(_var)814815 4.190 0.000 4.190 0.000 {method 'reduce' of 'numpy.ufunc' objects}1 1.855 1.85...

python-将1d NumPy中的值分配给类【代码】

如果我有一维数组:arr = np.array([ 5.243618, 5.219185, 4.755633, 5.685147, 5.2342 , 6.06918 ,5.324837, 4.857919, 5.768971, 4.310884, 4.442189, 4.883281,4.591852, 5.8325 , 5.865175, 5.642187, 5.941979, 6.30038 ,6.475276, 4.598086, 5.822819, 5.938378, 6.271719, 5.465492,4.230573, 4.331199, 4.912246, 4.878696, 5.393229, 4.857071,4.95928 , 4.83672 , 5.530075, 4.233449, 5...

Python Numpy:子数组到一个列表【代码】

我有一个看起来像这样的numpy数组x:In: x Out: array([[array([ 1.]), 0.0],[array([-0.00770808]), array([ 0.90825723])],[array([-0.0358526]), array([ 0.59267366])],[array([ 0.0088844]), array([ 0.89480382])],[array([ 0.0387529]), array([ 0.56483939])],[array([-0.08508252]), array([ 0.20664826])],[array([-0.04159874]), array([ 0.538443])],[array([ 0.07626737]), array([ 0.25998565])],[array([ 0.002226...

python-在SciPy / NumPy中查找复杂函数的零【代码】

有人告诉我,只要提供一阶导数,方法scipy.optimize.newton()就能解决复杂的功能.我不能使它工作. newton()的文档中没有提到任何复杂的函数.有人可以告诉我如何在SciPy中找到f(z)= 1 z ^ 2之类的函数的根吗?我需要解决更复杂的问题,但是一个简单的示例将极大地帮助我.解决方法:这是在IPython会话中将newton与复杂函数结合使用的示例:In [1]: def func(z):...: return 1 + z*z...: In [2]: def deriv(z):...: return 2*z......

python-PyCharm中的numpy问题

我似乎无法将numpy安装到PyCharm. 我从Python 2.7.8和PyCharm 3.4.1的最新安装开始. 然后我在PyCharm中安装了winpython以使用以下命令获取numpy和scipy软件包 文件>默认设置>项目译员>选择Python 2.7.7>安装pip和setuptools>正在安装winpython … 安装完这些后,我去使用numpy运行一个简单的代码,并继续出现“没有名为numpy的模块”的错误.我的教授做了完全相同的事情,并且他的工作很好(都使用Windows 7).解决方法:进入Winpython we...

python-以小块创建非常大的NUMPY数组(PyTables与numpy.memmap)【代码】

关于SO的问题似乎很多,但是它们并不能完全回答我的问题.我认为这对于计算科学家来说是一个非常普遍的用例,因此我提出了一个新问题. 题: 我从文件中读取了几个小的numpy数组(每个数组约10 MB),并对它们进行了一些处理.我想创建一个更大的数组(?1 TB),其中数组中的每个维度都包含这些较小文件之一的数据.任何尝试在RAM中创建整个较大阵列(或其大部分)的方法均不适用,因为它会淹没RAM,并使计算机停止运行.因此,我需要能够初始化较大的...

Python Ctypes:将返回的C数组转换为python列表,而没有numpy【代码】

我正在使用Python Ctypes访问某些C库. 我连接的函数之一返回const * double,它实际上是一个double数组. 当我在Python中获得结果时,如何将该数组转换为python列表? C函数的签名:const double *getWeights();假设它返回一个包含0.13和0.12的数组.我想获取一个Python列表:[0.13,0.12]解决方法:我成功使用指针解决了它 解决方案: 将函数返回类型定义为POINTER(double_c)(当然,数组实际上是C中的指针):getWeights_function_handler...

python-在numpy中创建索引数组-消除double for循环【代码】

我有一些物理仿真代码,使用python和numpy / scipy编写.对代码进行性能分析表明,38%的CPU时间都花在了一个双重嵌套的for循环中-这似乎过多,因此我一直在尝试减少它. 循环的目标是创建一个索引数组,以显示2D数组的元素等于1D数组的哪些元素.indices[i,j] = where(1D_array == 2D_array[i,j])例如,如果1D_array = [7.2,2.5,3.9]且2D_array = [[7.2, 2.5] [3.9, 7.2]]我们本应该indices = [[0, 1][2, 0]]我目前已实现为for i in range...