假设我在python中有以下列表:
a = [1,2,3,1,2,1,1,1,3,2,2,1]
Run Code Online (Sandbox Code Playgroud)
如何以整洁的方式找到此列表中最常见的号码?
在Python中,我有一个列表:
L = [1, 2, 45, 55, 5, 4, 4, 4, 4, 4, 4, 5456, 56, 6, 7, 67]
Run Code Online (Sandbox Code Playgroud)
我想确定发生次数最多的项目.我能够解决它,但我需要最快的方法来解决它.我知道有一个很好的Pythonic答案.
我有一个形状为(30,480,640)的numpy ndarray,第1和第2轴代表位置(纬度和长度),第0轴包含实际数据点.我想在每个位置沿第0轴使用最频繁的值,是构造一个形状为(1,480,640).ie的新数组:
>>> data
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[40, 40, 42, 43, 44],
[45, 46, 47, 48, 49],
[50, 51, 52, 53, 54],
[55, 56, 57, 58, 59]]])
(perform calculation)
>>> new_data
array([[[ 0, 1, 2, 3, 4],
[ 5, …Run Code Online (Sandbox Code Playgroud) 是否有另一种方法在numpy中实现scipy.stats.mode函数以获取沿轴的ndarrays中最常见的值?(不导入其他模块)即
import numpy as np
from scipy.stats import mode
a = np.array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[40, 40, 42, 43, 44],
[45, 46, 47, 48, 49],
[50, 51, 52, 53, 54],
[55, 56, 57, 58, 59]]])
mode= mode(data, axis=0)
mode = …Run Code Online (Sandbox Code Playgroud) 我试图找到二维 numpy 数组中最常见的元素。我想要它们按行或按列。我搜索了文档和网络,但找不到我正在寻找的内容。让我用一个例子来解释一下;假设我有arr如下:
import numpy as np
arr = np.random.randint(0, 2, size=(5, 2))
arr
# Output
array([[1, 1],
[0, 0],
[0, 1],
[1, 1],
[1, 0]])
Run Code Online (Sandbox Code Playgroud)
预期输出是一个数组,其中包含列或行中最常见的元素,具体取决于给定的axis输入。我知道np.unique()返回给定输入数组中每个唯一值的计数axis。因此,它计算二维数组中唯一的行或列:
np.unique(arr, return_counts=True, axis=0)
# Output
(array([[0, 0],
[0, 1],
[1, 0],
[1, 1]]), array([1, 1, 1, 2]))
Run Code Online (Sandbox Code Playgroud)
因此,它表明唯一元素[0, 0]、[0, 1]和[1, 0]出现一次,而[1, 1]在 中出现两次arr。这对我不起作用。因为我需要查看行(或列)中最常见的元素。所以我的预期输出如下:
array([[1, 1], # --> 1
[0, 0], # --> 0
[0, 1], …Run Code Online (Sandbox Code Playgroud)