применять функцию lowess () по столбцам к двум массивам одинаковых фигур - PullRequest
0 голосов
/ 21 февраля 2019

Я хотел бы применить функцию [lowess()][1] по столбцам (столбец 1 1-го массива и столбец 1 2-го массива) для двух больших числовых массивов одинаковой формы (33,~14000), чтобы получить третий массив, содержащий сглаженные значенияс идентичной формой.

Один массив содержит значения x, а другой - значения y для функции [lowess()][1].

Я посмотрел на [numpy.vectorize()][1] и, похоже, не нашел способа сделатьthis.

Существует ли векторизованное решение для этого?

Приведенный ниже код включает в себя подмножество данных (33, 5):

import numpy as np
from Bio.Statistics import lowess

x = np.array([[ 0.02482128,  0.04800129,  0.05970001,  0.2500887 ,  0.13813114],
       [-0.15335226,  0.03859329,  0.5601454 , -0.47751045,  0.14223003],
       [ 0.17191982, -0.03256845, -0.2704444 , -0.093647  , -0.539505  ],
       [-0.18524027,  0.01060915, -0.30057144, -0.14830208,  0.56457806],
       [-0.1775446 , -0.01310873, -0.26189804, -0.17747355, -0.23629665],
       [ 0.07648993,  0.11103201,  0.589818  , -0.11406326,  0.1776371 ],
       [ 0.317667  , -0.01560402,  0.39747334,  0.11308289,  0.4232664 ],
       [ 0.38938808,  0.23480797, -0.42039776,  0.06176662, -0.24095821],
       [-0.06608486,  0.04713726,  0.35143852,  0.3167987 ,  0.07772255],
       [ 0.28575754,  0.08154392, -0.1795454 , -0.06183243, -0.6071148 ],
       [ 0.27942848,  0.03686762, -0.11383152, -0.37741995, -0.67893934],
       [ 0.09874439, -0.11218214,  0.53765774,  0.12229681,  0.09937191],
       [ 0.07899189, -0.06172419, -0.01412106,  0.29815912,  0.06921196],
       [-0.5575795 ,  0.17440462,  0.4482336 , -0.42329168, -0.42318058],
       [-0.00781012,  0.05469799, -0.00262833, -0.16313648,  0.33030987],
       [ 0.01612997, -0.29763603, -0.35993958,  0.20896721, -0.01481056],
       [-0.05184507,  0.22348356,  0.39140987, -0.14832544,  0.17410088],
       [ 0.02847338,  0.02308035, -0.12702274, -0.19778919,  0.31087875],
       [-0.5492716 , -0.02013874,  0.12577438, -0.11392832, -0.39846134],
       [-0.03468943, -0.0295558 , -0.07844639,  0.04537296,  0.05451107],
       [-0.18794298,  0.10741138,  0.36670208, -0.1904726 , -0.32082558],
       [ 0.5786147 ,  0.32772923,  0.2062025 ,  0.32470465, -0.84580183],
       [ 0.22584343, -0.02698565, -0.26552105, -0.06375647,  0.58737755],
       [ 0.03465605, -0.24093103, -0.23005867,  0.15275288,  0.38084507],
       [ 0.00937891, -0.14649105, -0.01934338, -0.23434734, -0.37168026],
       [-0.02025366, -0.14081764, -0.21980095,  0.01488113, -0.2420435 ],
       [-0.15545464,  0.17256403,  0.1636858 ,  0.3812251 ,  0.06866932],
       [-0.02390814,  0.07711935,  0.28530407,  0.3817525 ,  0.10252571],
       [-0.2442751 , -0.0260272 , -0.2731142 ,  0.31553936,  0.41060162],
       [ 0.02275944, -0.00415039,  0.15864182,  0.33187914,  0.07651806],
       [ 0.25222778,  0.15338421, -0.09697151,  0.0145421 , -0.08250237],
       [ 0.61664677, -0.05378103, -0.5358076 ,  0.15497589, -0.698823  ],
       [-0.10142422,  0.4852066 , -0.25492382, -0.05385685,  0.15751743]],
      dtype=np.float32)

y = np.array([[4.59169  , 4.418433 , 5.0820627, 4.6869965, 5.207094 ],
       [4.5058136, 4.415601 , 5.0899377, 4.6807904, 4.9426126],
       [4.5569663, 4.305499 , 4.886066 , 4.5803747, 5.056634 ],
       [4.4900746, 4.37889  , 5.1278543, 4.6113243, 5.2266693],
       [4.503826 , 4.400037 , 5.211916 , 4.682177 , 5.098976 ],
       [4.509243 , 4.3813405, 5.3079786, 4.6301603, 5.2500844],
       [4.41681  , 4.3992863, 5.0737085, 4.670207 , 5.070466 ],
       [4.591771 , 4.4518366, 5.107484 , 4.596655 , 4.997365 ],
       [4.494399 , 4.3796077, 5.242492 , 4.47066  , 5.0400076],
       [4.519887 , 4.4044647, 5.1427035, 4.6785154, 5.021449 ],
       [4.448152 , 4.4056873, 5.144441 , 4.5711513, 4.9853024],
       [4.49775  , 4.385726 , 5.216489 , 4.6923037, 5.201977 ],
       [4.5084896, 4.4458   , 5.2891297, 4.624942 , 4.9242325],
       [4.5791883, 4.4296904, 5.280667 , 4.703702 , 5.1066465],
       [4.589999 , 4.3781233, 5.0826826, 4.7128706, 5.1191587],
       [4.638551 , 4.3878164, 5.1654997, 4.6913614, 5.324785 ],
       [4.500376 , 4.500883 , 5.1015763, 4.656    , 5.2887416],
       [4.488534 , 4.5052986, 5.367143 , 4.7019596, 5.1367083],
       [4.470419 , 4.3764915, 5.065318 , 4.7039804, 5.168439 ],
       [4.423869 , 4.513232 , 5.1516542, 4.609404 , 5.3527145],
       [4.5888453, 4.480359 , 5.1191635, 4.676672 , 4.9557304],
       [4.5064774, 4.4485407, 5.147471 , 4.648161 , 5.057909 ],
       [4.557802 , 4.3785524, 5.0217905, 4.697456 , 5.0020485],
       [4.54012  , 4.454771 , 5.033494 , 4.606558 , 4.8119564],
       [4.6103888, 4.393633 , 5.1113367, 4.58374  , 5.0711713],
       [4.574035 , 4.3336782, 5.0118513, 4.6048336, 5.288041 ],
       [4.482691 , 4.3997755, 5.093251 , 4.624267 , 5.115726 ],
       [4.4595666, 4.3373346, 5.1056104, 4.6904593, 5.3377056],
       [4.488827 , 4.4477224, 5.190276 , 4.61971  , 5.233069 ],
       [4.513173 , 4.402734 , 5.142403 , 4.625946 , 5.175432 ],
       [4.4656053, 4.388732 , 5.1367936, 4.6234007, 5.249696 ],
       [4.5307274, 4.429734 , 5.2134457, 4.6189766, 5.2845373],
       [4.4585304, 4.471982 , 5.194815 , 4.6854787, 5.2281733]],
      dtype=np.float32)


lowess.lowess(x[:,1], y[:,1])
#Output
'''array([4.39855668, 4.39910091, 4.40520765, 4.40238191, 4.40618866,
   4.40353337, 4.40657502, 4.44116607, 4.39858563, 4.39976923,
   4.39925592, 4.39799667, 4.3990058 , 4.4273006 , 4.39843829,
   4.40196311, 4.43833446, 4.400469  , 4.40700818, 4.405916  ,
   4.40225547, 4.45443733, 4.40643108, 4.40104955, 4.40217919,
   4.40204647, 4.42686513, 4.39935488, 4.40659024, 4.40457143,
   4.42105802, 4.40040609, 4.47989016])'''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...