如果在给定范围之外的numpy数组中赋值,如何引发异常?

2024-09-29 21:59:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python初学者,我正在实现一个k-means版本。你知道吗

我正在定义k-means类,其中一个类属性是__class,其中__class[i] = j表示第i个数据点被分配给第j个集群。这意味着如果我们有n数据点和k集群,那么0 <= __class[i] < k对于每个i in range(n)。你知道吗

现在,我想做的(为了防止错误)是,如果我们执行__class[i] = impossibleK,其中impossibleK < 0 V impossibleK >= ki in range(n)之类的操作,则引发一个异常。简而言之,我希望每当我们将一个不可能的集群分配给__class的元素时,就会抛出异常。你知道吗

如何在Python中自动执行此检查?你知道吗

这是类和构造函数:

import numpy as np


class CLUMPY:
    def __init__(self, k, file):
        # input file
        self.__file = file
        print("k=",k)
        print("Reading {}...".format(file))
        # data points
        self.__points = np.loadtxt(file)
        # number of data points
        self.__n = self.__points.shape[0]
        # data points dimensionality (or length according to numpy terminology)
        self.__d = self.__points.shape[1]
        print("Read {}: {} points in {} dimensions.".format(file, self.__n, self.__d))
        # __class[i] = j : the i-th data point is assigned to the j-th cluster
        self.__class = np.zeros(self.__n, dtype=np.int8)


if __name__ == "__main__":
    clumpy = CLUMPY(2, "datasets/202d")

Tags: 数据inselfnumpydatanp集群range

热门问题