使用多列 Pandas 数据框生成 numpy 数组

我在 Windows 10 上使用 python 3.6。我有一个包含大约 100,000 行的 Pandas 数据框。从这个数据框中,我需要生成四个 numpy 数组。我的数据框的前 5 行如下所示


A          B      x      UB1     LB1     UB2    LB2

0.2134  0.7866  0.2237  0.1567  0.0133  1.0499  0.127

0.24735 0.75265 0.0881  0.5905  0.422   1.4715  0.5185

0.0125  0.9875  0.1501  1.3721  0.5007  2.0866  2.0617

0.8365  0.1635  0.0948  1.9463  1.0854  2.4655  1.9644

0.1234  0.8766  0.0415  2.7903  2.2602  3.5192  3.2828

B 列是(1-A 列),实际上 B 列不在我的数据框中。我添加了它来解释我的问题从这个数据框中,我需要生成三个数组。我的阵列看起来像


My array c looks like array([-0.2134, -0.7866,-0.24735, -0.75265,-0.0125, -0.9875,-0.8365, -0.1635,-0.1234, -0.8766],dtype=float32)

其中第一个元素是 A 列的第一行加上负号,类似地,第二个元素取自 B 列的第一行,第三个元素取自 A 列的第二行,第四个元素是 B 列的第二行等我的第二个数组UB 看起来像


array([ 0.2237, 0.0881, 0.1501, 0.0948, 0.0415, 0.2237],dtype=float32)

其中元素是 X 列的行。


我的第三个数组边界看起来像


   array([[0.0133 , 0.1567],

       [0.127 , 1.0499],

       [0.422 , 0.5905],

       [0.5185 , 1.4715],

       [0.5007 , 1.3721],

       [2.0617 , 2.0866],

       [1.0854 , 1.9463],

       [1.9644 , 2.4655],

       [2.2602 , 2.7903],

       [3.2828 , 3.5192]])

其中 bounds[0][0] 是 LB1 的第一行,bounds[0][1] 是 UB1 的第一行。bounds[1][0] 是 LB2 的第一行,bounds [1][1] 是 UB2 的第一行。再次 bounds[2][0] 是 LB1 的第二行等等。我的第四个阵列看起来像


array([[-1,  1,  0,  0,  0,  0,  0,  0,  0,  0],

       [ 0,  0, -1,  1,  0,  0,  0,  0,  0,  0],

       [ 0,  0,  0,  0, -1,  1,  0,  0,  0,  0],

       [ 0,  0,  0,  0,  0,  0, -1,  1,  0,  0],

       [ 0,  0,  0,  0,  0,  0,  0,  0, -1,  1]])

它包含与数据框行和列=2*数据框行相同的行数。


您能告诉我 100,000 行记录的生成这些数组的有效方法是什么吗


慕后森
浏览 182回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python