【问题标题】:What's the best way to get a list/array of element-wise means between an array and a constant?在数组和常量之间获取元素列表/数组的最佳方法是什么?
【发布时间】:2022-11-12 08:21:21
【问题描述】:

假设我有my_array = np.array([2, 4, 6]),我想得到另一个数组,它代表my_array 中每个元素的平均值和一个常数,比如2。所以我想返回returned_array = [2, 3, 4]。做这个的最好方式是什么?

当我尝试np.mean(my_array, 2) 时,我得到TypeError: only size-1 arrays can be converted to Python scalars

为此,我可以创建自己的均值函数:

def mean(a,b): 
    return (a+b)/2

这很好用。这显然不是执行此操作的理想方法。什么是最好的方法?为什么 numpy 中的一切都必须是一种考验?

【问题讨论】:

  • 我无法说出你在这里的意思。如果您想要每个元素的平均值和一个常数,那么输出矩阵的大小将与输入矩阵的大小相同,为此您可以直接使用(my_array + 2) / 2。为什么尺寸会变小?也许你应该举一个例子。
  • “这显然不是一种理想的做法”有什么特别不理想的地方?
  • @juanpa.arrivillaga 我做到了。一切都在我给出的例子中。我的输入/变量,我尝试的操作,我收到的输出。我不知道你还想要什么。
  • 另外,这不是np.mean(my_array, 2) 对我产生的错误,您使用的是哪个版本的numpy?
  • @NaiveBae我误读了您的问题,我以为您是在说您定义为产生该错误的功能。

标签: python arrays numpy mean


【解决方案1】:

这个怎么样:

import numpy as np

my_array = np.array([2, 4, 6])
other = 2
(my_array + other) / 2
# [2. 3. 4.]

这只是两个数字的元素平均值,这与除以二相同。

【讨论】:

  • 而已。聪明的。我试图使用 np.mean。
  • @NaiveBae 这与:return (a+b)/2 不完全相同吗?
  • @juanpa.arrivillaga 它是。这个问题太令人困惑了。
  • @juanpa.arrivillaga 和return (a+b)/2 是一样的。它让我得到了我需要的东西,而不必定义我自己的平均函数。这就是为什么我接受它作为答案。不知道为什么每个人都感到困惑,哈哈。
猜你喜欢
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 2020-11-30
  • 1970-01-01
  • 2011-11-21
  • 2018-08-30
  • 2012-04-11
相关资源
最近更新 更多