如何计算NumPy数组的模式

如何计算NumPy数组的模式

在这篇文章中,我们将讨论如何计算Numpy数组的模式。

模式指的是数组中重复最多的元素。我们可以通过以下方法从NumPy数组中找到模式。

方法1:使用scipy.stats软件包

让我们看看mode()函数的语法

语法 :

variable = stats.mode(array_variable)

注意:为了应用模式,我们需要创建一个数组。在python中,我们可以使用numpy包创建一个数组。所以我们首先需要使用numpy包创建一个数组,然后在该数组上应用mode()函数。让我们看看例子,以便更好地理解。

示例 1:

应用于一维阵列

# importing required packages
from scipy import stats as st
import numpy as np
 
# creating an array using array() method
abc = np.array([1, 1, 2, 2, 2, 3, 4, 5])
 
# applying mode operation on array and
# printing result
print(st.mode(abc))

输出 :

ModeResult(mode=array([2]), count=array([3]))

示例 2:

应用于二维阵列

# importing required modules
import numpy as np
from scipy import stats as st
 
# creating a 2-D array using numpy package
arr = np.array([[1, 2, 3, 4, 5],
                [1, 2, 2, 2, 2],
                [4, 5, 7, 9, 4],
                [6, 7, 8, 9, 2],
                [2, 3, 4, 8, 6]])
 
# applying mode operation and printing the
# result
print(st.mode(arr))

输出 :

ModeResult(mode=array([[1, 2, 2, 9, 2]]), count=array([[2, 2, 1, 2, 2]]))

方法2:使用统计模块

与NumPy模块一样,统计模块也包含统计函数,如平均数、中位数、模式…. 等。因此,让我们看看一个使用统计模块的模式的例子。

示例 :

import statistics as st
import numpy as np
 
# create an 1 d array
arr1 = np.array([9, 8, 7, 6, 6, 6, 6, 5, 5, 4,
                 3, 2, 1, 1, 1, 1, 1, 1])
 
# display the mode
print(st.mode(arr1))

输出 :

1

方法3:使用用户定义的函数

这里我们没有使用任何预定义的函数来获取数列的模式。让我们看一个例子,演示如何在没有预定义函数的情况下计算模式。

示例 :

# creating a list
lst = [1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 5, 5, 5]
 
# defining a function to calculate mode. It
# takes list variable as argument
def mode(lst):
     
    # creating a dictionary
    freq = {}
    for i in lst:
       
        # mapping each value of list to a
        # dictionary
        freq.setdefault(i, 0)
        freq[i] += 1
         
    # finding maximum value of dictionary
    hf = max(freq.values())
     
    # creating an empty list
    hflst = []
     
    # using for loop we are checking for most
    # repeated value
    for i, j in freq.items():
        if j == hf:
            hflst.append(i)
             
    # returning the result
    return hflst
 
# calling mode() function and passing list
# as argument
print(mode(lst))

输出 :

[5]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程