【python – 为什么numpy.zeros会占用很少的空间】教程文章相关的互联网学习教程文章

python – 快速numpy花式索引【代码】

我的切片numpy数组的代码(通过花哨的索引)非常慢.它目前是计划的瓶颈.a.shape (3218, 6)ts = time.time(); a[rows][:, cols]; te = time.time(); print('%.8f' % (te-ts)); 0.00200009获取由矩阵a的行’rows’和列’col’的子集组成的数组的正确numpy调用是什么? (事实上??,我需要这个结果的转置)解决方法:如果使用花式索引和广播切片,您可以加快速度:from __future__ import division import numpy as npdef slice_1(a, rs, cs)...

python – Pyinstaller numpy“英特尔MKL致命错误:无法加载mkl_intel_thread.dll”【代码】

我是python应用程序的新手.我正在尝试使用pyinstaller构建我的python GUI应用程序.我的应用程序取决于以下包:PyQt4,numpy,pyqtgraph,h5py.我正在使用WinPython-32bit-3.4.4.1. 我用这个命令构建应用程序:pyinstaller --hidden-import=h5py.defs --hidden-import=h5py.utils --hidden-import=h5py.h5ac --hidden-import=h5py._proxy VOGE.py我用pyinstaller创建的dist目录中的exe文件启动我的应用程序,它似乎工作正常,直到程序调用...

python – 内置范围或numpy.arange:哪个更有效?【代码】

在使用范围表达式迭代大型数组时,我应该使用Python的内置范围函数,还是使用numpy的arange来获得最佳性能? 我的推理到目前为止: arange可能会转向本机实现,因此可能会更快.另一方面,arange返回一个占用内存的完整数组,因此可能存在开销. Python 3的范围表达式是一个生成器,它不包含内存中的所有值.解决方法:对于大型阵列,numpy应该是更快的解决方案. 在numpy中你应该使用矢量化计算的组合,ufuncs和indexing来解决你在C速度下运行的...

python – 了解NumPy的Convolve【代码】

在计算简单移动平均线时,numpy.convolve似乎可以完成这项工作. 问题:使用np.convolve(值,权重,’有效’)时如何进行计算? 当文档中提到的卷积乘积仅用于信号完全重叠的点时,2个信号指的是什么? 如果任何解释可以包括示例和插图,那将非常有用.window = 10 weights = np.repeat(1.0, window)/window smas = np.convolve(values, weights, 'valid')解决方法:卷积是一种主要用于信号处理的数学运算符. Numpy只是使用这个信号处理命名...

python – 如何在numpy的数组中索引轴?

从Numpy’s tutorial开始,轴可以用整数索引,例如0表示列,1表示行,但我不明白为什么它们以这种方式索引?在处理多维数组时,如何计算每个轴的索引?解决方法:根据定义,维度的轴号是数组形状中该维度的索引.它也是在索引期间用于访问该维度的位置. 例如,如果2D阵列a具有形状(5,6),那么您可以访问[0,0]直到[4,5].因此,轴0是第一维(“行”),轴1是第二维(“列”).在更高的维度中,“行”和“列”停止真正有意义,尝试根据所涉及的形状和指数...

python – numpy.round的奇怪行为【代码】

当面对x.5数字时,Python的round()似乎总是向上舍入:print round(1.5),round(2.5),round(3.5),round(4.5) >>> 2.0 3.0 4.0 5.0但是numpy.round()似乎不一致:import numpy as np print np.round(1.5),np.round(2.5),np.round(3.5),np.round(4.5) >>> 2.0 2.0 4.0 4.0这可能会在某些情况下引入错误.这是一个错误还是我错过了什么?解决方法:numpy舍入到最接近的偶数值: https://docs.scipy.org/doc/numpy/reference/generated/nump...

python – Numpy来自docs的语法【代码】

试图教自己一些python,我从文档中对于函数的作用非常困惑.有人可以一步一步地从下面的文档中解释一下这个例子吗?>>> np.where([[True, False], [True, True]], ... [[1, 2], [3, 4]], ... [[9, 8], [7, 6]]) array([[1, 8],[3, 4]])解决方法:基本语法是np.where(x,a,b)只要x为真,取a的元素,并且只要它为假,取b的元素.它相当于这样的东西:x = . . [[1, 0], [1, 1]]), not x =[[0, 1], [0, 0 ]] array([[1, 2], ...

python – 没有double for循环展平numpy数组【代码】

我有一个二维矩阵.出于这个例子的目的,让我们说它是一个随机矩阵>>> a = np.random.randn(5, 7) >>> a array([[-0.37279322, 0.28619523, -0.05309901, 0.26010327, 0.1846693 , 0.33112176, 0.75814911],[ 1.57001151, -0.86831693, -0.20576395, 1.46450855, -0.01631132, 3.02790403, -0.65313017],[ 0.2362675 , -1.52190536, 0.04687194, 2.01618876, 0.03780218, -0.53041096, -0.30104844],[-0.5504834 , 1.042861...

python – numpy中结构化数组的形状【代码】

我试图预分配一个空数组,同时使用以下代码定义大小为195的数据类型:import numpy as np arr=np.empty((19,5),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])结果有些出乎意料,产生了一个19 * 5 * 5阵列.但是,尝试:arr=np.empty((19,1),dtype=[('a','|S1'),('b', 'f4'),('c', 'i'),('d', 'f4'),('e', 'f4')])给出每行适当的长度(5个字段),显然看起来像一维数组. 当我尝试写这个时,只允许这种格式:np.save...

python – 有一个numpy biginteger?【代码】

嗯.我似乎没有办法将Python的大整数存储在一个numpy数组中.你需要做些什么特别的事情来声明一个带有bigint的numpy数组吗?解决方法:没有具体,没有.您可以使用dtype =’object’创建一个数组,该数组创建一个Python对象数组(包括但不限于int).这将为您提供许多类似Numpy阵列的功能,但几乎没有任何性能优势. 也就是说,就内存性能而言,Python对象数组与Python列表没有显着差异.虽然如果必须使用bigint,仍然可能更喜欢使用列表,因为您仍...

python – 这个Numpy双循环的矢量化【代码】

如何对以下双循环进行矢量化? 我有一个N乘A矩阵和一个N乘B矩阵,其中A和B可能不同,N比A和B小得多.我想按如下方式生成AB矩阵,但理想情况下没有循环:import numpy as npdef foo(arr):# can be anything - just an example so that the code runsreturn np.sum(arr)num_a = 12 num_b = 8 num_dimensions = 3a = np.random.rand(num_dimensions, num_a) b = np.random.rand(num_dimensions, num_b)# this is the loop I want to elimi...

python – 检查两个numpy数组是否相同【代码】

假设我有一堆数组,包括x和y,我想检查它们是否相等.一般来说,我可以使用np.all(x == y)(除非我现在忽略了一些愚蠢的角落情况). 但是,这会计算整个数组(x == y),这通常是不需要的.我的数组非常大,我有很多,两个数组相等的概率很小,所以很可能,我真的只需要在全部之前评估一小部分(x == y)函数可以返回False,所以这对我来说不是最佳解决方案. 我尝试使用内置的all函数,结合itertools.izip:all(val1 = val2为val1,val2为itertools.izi...

python – 如何将numpy数组值复制到更高的维度【代码】

我在2d中有一个(w,h)np数组.我想制作一个值大于1的3d维度,并将其值沿第三维复制.我希望广播会这样做,但事实并非如此.这就是我在做的方式arr = np.expand_dims(arr, axis=2) arr = np.concatenate((arr,arr,arr), axis=2)有更快的方法吗?解决方法:你可以向前推动所有的dims,引入一个单独的暗/新轴作为最后一个dim来创建一个3D阵列,然后沿着那个用np.repeat重复三次,就像这样 – arr3D = np.repeat(arr[...,None],3,axis=2)这是使用...

python – 在numpy数组中沿轴的和【代码】

我想了解这个ndarray.sum(axis =)是如何工作的.我知道axis = 0用于列,axis = 1用于行.但是在3维(3轴)的情况下,难以解释下面的结果.arr = np.arange(0,30).reshape(2,3,5)arr Out[1]: array([[[ 0, 1, 2, 3, 4],[ 5, 6, 7, 8, 9],[10, 11, 12, 13, 14]],[[15, 16, 17, 18, 19],[20, 21, 22, 23, 24],[25, 26, 27, 28, 29]]])arr.sum(axis=0) Out[2]: array([[15, 17, 19, 21, 23],[25, 27, 29, 31, 33],[35, 37, 39, 41, ...

python – 为numpy数组赋值复杂?【代码】

这给出了预期的结果x = random.rand(1) + random.rand(1)*1j print x.dtype print x, x.real, x.imag这很有效C = zeros((2,2),dtype=complex) C[0,0] = 1+1j print C但如果我们改变它C[0,0] = 1+1j + x我得到“TypeError:无法将复数转换为浮点数”. 如果我们现在省略显式dtype = complex,我得到“ValueError:设置一个带序列的数组元素”. 有人可以解释发生了什么,以及如何做到这一点没有错误?我迷路了.解决方法:要将复杂的x或x内...