-1

我有这段代码为从 0 到 512 的所有数字创建一个二进制表示数组,我想在每个数组的末尾添加一个随机值。随机值可以是 0 或 1。这是生成数组的代码:

import numpy as np
POP_SIZE = 50
def initialize_population():
    pixels = 9
    population = []
    for i in range(POP_SIZE):
        chromosome = np.array([list((np.binary_repr(x, pixels))) for x in range(2 ** pixels)], dtype=int)
        population.append(chromosome)
    return population

我知道我可以使用 np.append(chromosome, np.random.randint(2)),但我不知道如何与 previos 代码集成。

4

1 回答 1

1

使用random.randint

import numpy as np
import random

POP_SIZE = 50
def initialize_population():
    pixels = 9
    population = []
    for i in range(POP_SIZE):
        chromosome = np.array([list(np.binary_repr(x, pixels)) + [random.randint(0, 1)] for x in range(2 ** pixels)], dtype=int)
        population.append(chromosome)
    return population
print(initialize_population()[0].shape)
(512, 10)
于 2020-05-23T15:36:29.607 回答