【python – Numpy:条件求和】教程文章相关的互联网学习教程文章

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内...

python – Numpy相当于itertools.product【代码】

参见英文答案 > itertools product speed up 6个我知道itertools.product用于迭代关键字的几个维度的列表.例如,如果我有这个:categories = [[ 'A', 'B', 'C', 'D'],[ 'E', 'F', 'G', 'H'],[ 'I', 'J', 'K', 'L'] ]我使用itertools.product(),我有类似的东西:>>> [ x for x in itertools.product(*categories) ] ('A', 'E', 'I'), ('A', 'E', 'J'), ('A', 'E', 'K'), ('A', 'E', 'L'), ('A', ...

python – AttributeError:type object’numpy.ndarray’没有属性’__array_function__’【代码】

我将numpy升级到最新版本,现在我在导入numpy时遇到以下错误:AttributeError: type object ‘numpy.ndarray’ has no attribute‘array_function‘我正在使用numpy版本1.16.解决方法:使用卸载所有Numpy安装pip uninstall numpy对于python3pip3 uninstall numpy您可能需要多次运行uninstall命令,因为可能会安装几个版本的numpy.然后跑pip install numpy

python – 删除NumPy数组中包含重复项的行【代码】

我有一个(N,3)numpy值数组:>>> vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]]) >>> vals array([[1, 2, 3],[4, 5, 6],[7, 8, 7],[0, 4, 5],[2, 2, 1],[0, 0, 0],[5, 4, 3]])我想从数组中删除具有重复值的行.例如,上面数组的结果应该是:>>> duplicates_removed array([[1, 2, 3],[4, 5, 6],[0, 4, 5],[5, 4, 3]])我不知道如何在没有循环的情况下有效地使用numpy(数组可能非常大).谁知道我怎么能...