Numpy二维数组中的np.digitize方法

Numpy二维数组中的np.digitize方法

在本文中,我们将介绍Numpy中的np.digitize方法在二维数组中的应用。

阅读更多:Numpy 教程

什么是np.digitize

np.digitize是Numpy提供的用于数字离散化处理的函数。给定一个数字序列,np.digitize会在一组bin(箱子)中找到每个数字所属的箱子。具体来说,np.digitize函数返回一个表示数字所属箱子的整数数组,其大小与输入数组相同。

np.digitize方法的用法:

digitize(x, bins, right=False)

x:输入数字序列
bins:指定的箱子序列
right:指定是否包含右侧的边界值-True表示包含右侧边界值,False表示不包含

np.digitize的返回值是一个数组,表示输入数组在每个箱子中的索引。索引编号从1开始,最大值为bin序列的长度。

如何使用np.digitize进行离散化处理

下面我们演示如何使用np.digitize方法,对二维数组进行数字的离散化处理。在这个例子中,我们将使用np.random.rand函数生成一个10行10列的随机矩阵,然后带入np.digitize进行离散化处理:

import numpy as np
np.random.seed(10)
arr = np.random.rand(10,10)  # 生成二维随机矩阵
bins = np.array([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])
digitized_arr = np.digitize(arr, bins)  # 对随机矩阵进行离散化处理
Python

在这个例子中,bins为一个固定的序列,我们将数字离散为5个桶。离散化处理后,可以将数字0到1重新分配到5个桶中。digitized_arr数组中的每个元素将表示相应的数字被分配到的桶的编号。

下面我们展示一下digitized_arr的结果。

print(arr)
print(digitized_arr)
Python

输出结果为:

[[0.77132064 0.02075195 0.63364823 0.74880388 0.49850701 0.22479665
  0.19806286 0.76053071 0.16911084 0.08833981]
 [0.68535982 0.95339335 0.00394827 0.51219226 0.81262096 0.61252607
  0.72175532 0.29187607 0.91777412 0.71457578]
 [0.54254437 0.14217005 0.37334076 0.67413362 0.44183317 0.43401399
  0.61776698 0.51313824 0.65039718 0.60103895]
 [0.8052232  0.52164715 0.90864888 0.31923609 0.09045935 0.30070006
  0.11398436 0.82868133 0.04689632 0.62628715]
 [0.54758616 0.819287   0.19894754 0.8568503  0.35165264 0.75464769
  0.29596171 0.88393648 0.32551105 0.1650159 ]
 [0.39252929 0.09346037 0.82110566 0.24928243 0.51484967 0.66252228
  0.31171108 0.52006802 0.54671028 0.18485446]
 [0.96958463 0.77513282 0.93939311 0.89482735 0.59789998 0.92187424
  0.0884925  0.19598286 0.04522729 0.32533033]
 [0.38867729 0.27134903 0.82873751 0.35675333 0.28093451 0.54269608
  0.14092422 0.80219698 0.07455064 0.98688694]
 [0.77224477 0.19871568 0.00552212 0.81546143 0.70685734 0.72900717
  0.77127035 0.07404465 0.35846573 0.11586906]
 [0.86310343 0.62329813 0.33089802 0.06355835 0.31098232 0.32518332
  0.72960618 0.63755747 0.88721274 0.47221493]]

[[ 4  1  4  4  3  2  2  4  2  1]
 [ 4  5  1  3  5  4  4  2  5  4]
 [ 3  1  2  4  3  3  4  3  4  4]
 [ 4  3  5  2  1  3  1  5  1  4]
 [ 3  5  2  5  2  5  2  5  2  1]
 [ 2  1  5  2  3  4  3  3  3  2]
 [ 5  4  5  5  4  5  1  2  1  1]
 [ 3  3  5  3  3  4  1  4  1  5]
 [ 4  2  1  5  5  5  4  1  3  1]
 [ 5  4  3  1  3  3  5  4  5  2]]
Python

从输出结果中我们可以看出,将随机矩阵进行离散化处理后,每个数都对应了一个离散化后的类别编号。

总结

在本文中,我们学习了Numpy中的np.digitize方法。我们展示了如何使用np.digitize方法,对二维数组进行数字的离散化处理。np.digitize方法是python数据分析的重要工具,适用于各种数据分析场景。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册