Я обращаюсь к некоторым векторам, хранящимся как arrays
в Google BigQuery, используя клиент Python:
df = client.query(sql).to_dataframe()
В результате dataframe
имеет один столбец, который выглядит какследующее:
page_vector
0 [0.11585406959056854, 0.4495273232460022, -0.0...
1 [0.3589635491371155, 0.529633104801178, 0.3646...
2 [0.05760370194911957, 0.10355205088853836, 0.7...
3 [0.12493933737277985, 0.7082784175872803, 0.26...
4 [-0.660869300365448, -0.5055545568466187, -0.2...
Теперь я хотел бы провести различные вычисления для этих векторных значений, такие как вычисление среднего значения, косинусного сходства и т. д.
Моя проблема заключается в том, что значения сохраняются какмассив списков (я полагаю), и я не могу преобразовать их в обычные numpy
массивы.
df.values
array([[list([0.11585406959056854, 0.4495273232460022, -0.06741087883710861, 0.009115549735724926, 0.03358231857419014, 0.3813880980014801, 0.5367750525474548, 0.1125958263874054, -0.04873140528798103, -0.15494178235530853])],
[list([0.3589635491371155, 0.529633104801178, 0.3646768629550934, -0.5236702561378479, -0.20803043246269226, -0.40205657482147217, 0.9097139835357666, 0.3311547636985779, -0.10366004705429077, -0.31620144844055176])],
[list([0.05760370194911957, 0.10355205088853836, 0.7606179118156433, -0.40389031171798706, -0.4287498891353607, -0.5946164727210999, 1.470175862312317, 0.12346278876066208, -0.13954032957553864, -0.4611101448535919])],
[list([0.12493933737277985, 0.7082784175872803, 0.26176416873931885, 0.04834984615445137, -0.1890079379081726, -0.2270711362361908, 0.8319875597953796, 0.39853358268737793, -0.11916585266590118, -0.5312120318412781])],
[list([-0.660869300365448, -0.5055545568466187, -0.260611891746521, 0.6198488473892212, 0.07465806603431702, 0.6059150099754333, -0.548044741153717, 0.38490045070648193, -0.49995312094688416, 0.1975364089012146])]],
dtype=object)
Как мне манипулировать результатами из BigQuery во что-то, что я могу затем использовать для различных вычислений?
Я пробовал много способов, таких как: df.apply(lambda x: np.asarray(x, dtype=float))