首页 > 解决方案 > 无法将条目集合附加到 NumPy 数组

问题描述

我有以下 numpy 数组:

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)

我需要将这 3 个数组中的每一个的第 i 个元素附加到另一个数组 RBG 的第 i 个位置。这就是我尝试这样做的方式:

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]]

为什么会这样?任何想法?

标签: arrayspython-3.xnumpynumpy-ndarray

解决方案


你可以这样实现

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)

推荐阅读