J'ai besoin d'aide pour mon projet. J'ai un tableau qui ressemble à ça?

rndm = [[0 1]
        [0 0]
        [0 0]
        [0 1]]

Maintenant, je veux ajouter par_1 = [[1 0]], par_2 = [[0 0], ch1 = [[1 1]], and ch2 = [[0 1]] à rndm.

Mon code ressemble à ceci:

new_rndm = []
new_rndm.append(par_1)
new_rndm.append(par_2)
new_rndm.append(ch1)
new_rndm.append(ch2)
# add them to rndm
rndm = numpy.append(rndm, [new_rndm])
print(rndm)

La sortie me donne quelque chose comme ceci:

rndm = [0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1]

Ce que j'attends en tant que sortie est:

rndm = [[0 1]
        [0 0]
        [0 0]
        [0 1]
        [1 0]
        [0 0]
        [1 1]
        [0 1]]

Je pense que le problème est que append ne peut pas être utilisé dans les tableaux. Si c'est correct, quelqu'un m'aider quelle autre fonction je pourrais essayer? Sinon, veuillez m'éduquer. Je suis très disposé à apprendre. Je vous remercie!

0
Acee 4 juin 2020 à 16:11

3 réponses

Meilleure réponse

Utilisez np.append(<array>, <elem to append>, axis=0)

rndm = np.array([[0, 1],
        [0, 0],
        [0, 0],
        [0, 1]])

par_1 = [[1, 0]]; par_2 = [[0, 0]]; ch1 = [[1, 1]]; ch2 = [[0, 1]]

rndm = np.append(rndm, par_1, axis=0)
rndm = np.append(rndm, par_2, axis=0)
rndm = np.append(rndm, ch1, axis=0)
rndm = np.append(rndm, ch2, axis=0)

array([[0, 1],
       [0, 0],
       [0, 0],
       [0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [0, 1]])

Modifier:

Remodeler:

x = np.array([2,1])
y = x.reshape(-1,1) # <------------ you have to do this
x.shape, y.shape

((2,), (2, 1))
3
Pygirl 4 juin 2020 à 14:02

Vous pouvez utiliser .append pour ajouter un tableau à la fin d'un autre tableau. Le problème ici est que numpy.append aplatit d'abord le tableau, c'est-à-dire. numpy.append([1 0], [0 1]) est [1 0 0 1]. Consultez la documentation numpy sur .append.

0
sugarfi 4 juin 2020 à 13:16

Vous pouvez utiliser l'ajout de liste ordinaire pour générer la structure de liste imbriquée souhaitée:

rndm = [[0, 1],
        [0, 0],
        [0, 0],
        [0, 1]
        ]

par_1 = [[1, 0]]
par_2 = [[0, 0]]
ch1 = [[1, 1]]
ch2 = [[0, 1]]

new_rndm = []

new_rndm.append(par_1)
new_rndm.append(par_2)
new_rndm.append(ch1)
new_rndm.append(ch2)

new_rndm = [i for k in new_rndm for i in k]

for data in new_rndm:
    rndm.append(data)

for data in rndm:
    print(data)

Les sorties:

[0, 1]
[0, 0]
[0, 0]
[0, 1]
[1, 0]
[0, 0]
[1, 1]
[0, 1]
0
Gustav Rasmussen 4 juin 2020 à 13:31