Невозможно добавить коллекцию записей в массив NumPy - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть следующие пустые массивы:

R    = np.array([-4, -10,  0,  8, 15, 22,  3],  dtype=float)
B    = np.array([4, -10,  0,  8, 15, 5,  1],  dtype=float)
G    = np.array([0, -10,  0,  8, 15, 2,  38],  dtype=float)

Мне нужно взять i-й элемент каждого из этих 3-х массивов и добавить его в i-ую позицию другого массива RBG.Вот как я пытался это сделать:

RBG = np.empty((7,3))

for i,c in enumerate(R):
   np.append(RBG, (R[i], B[i], G[i]) ) 

   #Only for debugging purpose.Illustrates the desired format.
   print("R={} B = {} G ={} i={}".format(R[i],B[i],G[i],i))

Вот что печатается:

R=-4.0 B = 4.0 G =0.0 i=0
R=-10.0 B = -10.0 G =-10.0 i=1
R=0.0 B = 0.0 G =0.0 i=2
R=8.0 B = 8.0 G =8.0 i=3
R=15.0 B = 15.0 G =15.0 i=4
R=22.0 B = 5.0 G =2.0 i=5
R=3.0 B = 1.0 G =38.0 i=6

Но, при печати результирующего массива, RBG:

[[4.4943389e-316 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]
[0.0000000e+000 0.0000000e+000 0.0000000e+000]]

Почему это происходит?Есть идеи?

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

вы можете достичь этого, как это

R    = np.array([-4, -10,  0,  8, 15, 22,  3],  dtype=float)
B    = np.array([4, -10,  0,  8, 15, 5,  1],  dtype=float)
G    = np.array([0, -10,  0,  8, 15, 2,  38],  dtype=float)

RBG = np.array([R,B,G]).transpose()



print(RBG)
0 голосов
/ 20 сентября 2019
RBG = np.vstack((R, B, G))
L = list(["R={} B = {} G ={} i={} ".format(RBG[0, i], RBG[1, i], RBG[2, i], i) for i in range(7)])
for i in L:
    print(i)

вывод :

R=-4.0 B = 4.0 G =0.0 i=0 
R=-10.0 B = -10.0 G =-10.0 i=1 
R=0.0 B = 0.0 G =0.0 i=2 
R=8.0 B = 8.0 G =8.0 i=3 
R=15.0 B = 15.0 G =15.0 i=4 
R=22.0 B = 5.0 G =2.0 i=5 
R=3.0 B = 1.0 G =38.0 i=6 
...