如何为数组正确使用 numpy.c_

我有一个要矢量化的函数。在函数内部,我有以下代码。


A = np.c_[xdata, ydata, np.ones(len(zdata))]

其中 x_data, y_data, z_data 都是 1x5 数组,例如。[1,2,3,4,5]。A 的结果输出将是


array([[1.90155189, 1.64412979, 1.        ],

       [2.44148892, 1.73851717, 1.        ],

       [1.65259189, 2.10693759, 1.        ],

       [2.52045732, 2.30939049, 1.        ],

       [1.53516213, 2.39788003, 1.        ]])

我想将函数的这一部分转换为处理 x、y、z 的输入数组(例如 1000 行 5 列)。我天真地试图将数组输入到这个函数中,第一行的输出如下。


array([1.90155189, 2.44148892, 1.65259189, 2.52045732, 1.53516213,

       1.64412979, 1.73851717, 2.10693759, 2.30939049, 2.39788003,

       1.        ])

以下是第一个结果的输入示例:


x=[1.90155189 2.44148892 1.65259189 2.52045732 1.53516213]

y=[1.64412979 1.73851717 2.10693759 2.30939049 2.39788003]

z=[0.23273446 0.57301046 0.89755946 0.07169598 0.41394575]

假设现在我有第二种方法的以下数据:


x_array = [[1.90155189 2.44148892 1.65259189 2.52045732 1.53516213],

           [1.90155189 2.44148892 1.65259189 2.52045732 1.53516213],

           [1.90155189 2.44148892 1.65259189 2.52045732 1.53516213]]

y_array = [[1.64412979 1.73851717 2.10693759 2.30939049 2.39788003],

           [1.64412979 1.73851717 2.10693759 2.30939049 2.39788003],

           [1.64412979 1.73851717 2.10693759 2.30939049 2.39788003]]

z_array = [[0.23273446 0.57301046 0.89755946 0.07169598 0.41394575],

           [0.23273446 0.57301046 0.89755946 0.07169598 0.41394575],

           [0.23273446 0.57301046 0.89755946 0.07169598 0.41394575]]



慕的地6264312
浏览 153回答 1
1回答

幕布斯7119047

你可以使用这个:编辑:由于@hpaulj 的评论,在下一行评论,添加了下一行。# new_A = np.stack((x,y,np.ones_like(z)), axis=1).swapaxes(1,2)new_A = np.stack((x,y,np.ones_like(z)), axis=2)测试一下:THOUSAND = 6x = np.random.randint(1,5,size=(THOUSAND,5))y = np.random.randint(1,5,size=(THOUSAND,5))z = np.random.randint(1,5,size=(THOUSAND,5))print (x)print (y)print (z)new_A = np.stack((x,y,np.ones_like(z)), axis=1).swapaxes(1,2)print (new_A)输出:[[1 2 2 1 1]      # print(x) [4 4 4 4 4] [1 2 1 3 3] [2 3 1 4 4] [1 1 4 1 4] [4 1 3 3 2]][[2 2 3 4 4]      # print(y) [1 1 4 2 1] [3 3 1 1 2] [1 1 2 1 3] [3 2 1 4 3] [4 4 1 3 2]][[3 4 3 2 2]      # print(z) [4 2 4 3 3] [3 3 4 1 4] [4 3 3 3 1] [4 1 1 3 3] [4 1 4 3 3]]# new_A output[[[1 2 1]      # print(new_A)  [2 2 1]  [2 3 1]  [1 4 1]  [1 4 1]] [[4 1 1]  [4 1 1]  [4 4 1]  [4 2 1]  [4 1 1]] [[1 3 1]  [2 3 1]  [1 1 1]  [3 1 1]  [3 2 1]] [[2 1 1]  [3 1 1]  [1 2 1]  [4 1 1]  [4 3 1]] [[1 3 1]  [1 2 1]  [4 1 1]  [1 4 1]  [4 3 1]] [[4 4 1]  [1 4 1]  [3 1 1]  [3 3 1]  [2 2 1]]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python