【问题标题】:_mean() got multiple values for argument 'axis'_mean() 为参数 'axis' 获得了多个值
【发布时间】:2021-09-22 05:01:45
【问题描述】:

我正在尝试找出我在物理实验室获取的一些数据的平均值。我正在尝试使用 .mean() 来获取值,但我不确定我做错了什么。

import numpy as np
import LT.box as B

file_name ='low_count.py'
f = B.get_file(file_name)

T = B.get_data(f, 'T') #trial numbers
C = B.get_data(f, 'C') #count

C.mean(C, axis=1, dtype=None)

这是我到目前为止所做的,我正在尝试做一个直方图。

【问题讨论】:

    标签: python data-analysis physics


    【解决方案1】:

    您应该执行 np.mean(, , ) ,其中 ,array 在上述情况下为“C”。 [执行 C.mean() 可能会给出多个值参数)

    mean_val = np.mean(C, axis=1, dtype=None)
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      LT.box.get_data 将获取变量的所有值作为numpy.array()

      假设 C 是一维数组

      import numpy as np
      import LT.box as B
      
      C = B.get_data(f, 'C')
      C
      # array([1, 2, 3])
      
      

      它只有一维,因此它要么是

      1×n 数组(axis=0)n×1 数组(axis=1)

      接下来,您想从数组中获取平均值,您可以使用:

      C.mean()
      

      np.mean(C)
      

      由于是一维数组,所以把axis留空(变成默认的,会自动知道应该是哪个轴),或者自己选择正确的轴。(错误的轴会导致AxisError:axis 0|1 超出了维度为 0|1) 的数组的范围

      假设 C 是一个二维数组

      C = B.get_data(f, 'C')
      C
      # array([[1, 2, 3],
      #        [4, 5, 6]])
      
      

      再次,您可以使用

      C.mean 
      
      np.mean(C)
      

      但关键是,你必须决定你想要哪个轴的意思。

      C.mean(axis=0)
      # array([2.5, 3.5, 4.5])
      
      C.mean(axis=1)
      # array([2., 5.])
      

      总结

      你得知道矩阵长什么样子,m × n(m行×n列),你自己看,打印出来看看长什么样,就可以操作了.

      【讨论】:

        猜你喜欢
        • 2017-12-23
        • 1970-01-01
        • 2021-06-13
        • 2019-05-09
        • 2018-11-18
        • 2022-11-06
        • 2019-07-05
        • 2019-02-08
        相关资源
        最近更新 更多