Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的增量数组,如基数系统_Python_Arrays_Numpy - Fatal编程技术网

python中的增量数组,如基数系统

python中的增量数组,如基数系统,python,arrays,numpy,Python,Arrays,Numpy,假设我有一个类似于[0]的数组,我想在一个类似于基数的比例上迭代它。假设我选择基数100,假设我想用一个小的endian系统。我的输出如下所示: [1 0 0] [2 0 0 0] … [99 0 0 0] [0110] 我的代码目前在一个函数“indexArray”中,但我想知道,不使用if语句,是否有可能以更简单的方式实现这一点 def indexArray(enteredArr): enteredArr[0] += 1 for i in range(len(enteredA

假设我有一个类似于[0]的数组,我想在一个类似于基数的比例上迭代它。假设我选择基数100,假设我想用一个小的endian系统。我的输出如下所示:
[1 0 0]
[2 0 0 0]

[99 0 0 0]
[0110]

我的代码目前在一个函数“indexArray”中,但我想知道,不使用if语句,是否有可能以更简单的方式实现这一点

def indexArray(enteredArr):
    enteredArr[0] += 1
    for i in range(len(enteredArr)):
        if enteredArr[i] > 99:
            enteredArr[i] = 0
            enteredArr[i + 1] += 1
    return enteredArr

与Python中的通常情况一样,如果您寻找它,有一种更简单的方法

您的主循环可以是:

for i in itertools.product(range(BASE), repeat=NDIM):
    ... stuff ...
例如,BASE=100和NDIM=4,但相同的方法适用于任何其他值


i
将是一个数组值的元组,按
(0,0,0,0),(0,0,0,1)的顺序递增。。。(BASE-1,BASE-1,BASE-1,BASE-1)

在Python中,与往常一样,如果您查找它,有一种更简单的方法

您的主循环可以是:

for i in itertools.product(range(BASE), repeat=NDIM):
    ... stuff ...
例如,BASE=100和NDIM=4,但相同的方法适用于任何其他值


i
将是一个数组值的元组,按
(0,0,0,0),(0,0,0,1)的顺序递增。。。(BASE-1,BASE-1,BASE-1,BASE-1)

您的示例实际上是BASE 100。非常确定您必须使用条件..您需要条件。如果你使用numpy,你可以并行处理更多的数字,但是如果这真的是一种加速和/或更容易理解的方法,这是有争议的。@randomir Doh!你是对的,你的例子实际上是在基数100中。非常确定你将不得不使用一个条件。你需要一个条件。如果你使用numpy,你可以并行处理更多的数字,但是如果这真的是一种加速和/或更容易理解的方法,这是有争议的。@randomir Doh!你是对的,这正是我在寻找的,一种做我正在做的事情的方式,但更容易。谢谢这正是我正在寻找的,一种做我正在做的事情的方式,但更容易。谢谢