Предположим, что у меня есть фрейм данных Pandas A со столбцами с именем user_id и историей, где история представляет собой массив целых чисел. А возможные истории ограничены сверху 2000. Мне нужно перебрать все строки A для каждой истории b = [b1, b2, b3, ..., bn]. Все bi уникальны (появляются в массиве только один раз). Мне нужно найти все возможные тройки (bi, bj, bk) такие, что i < j < k, и подсчитать вхождения всех таких троек. Кроме того, мы считаем тройку (bi, bj, bk) такой же, как (bj, bi, bk), если bi > bj.
import pandas as pd
from itertools import combinations
# Example DataFrame A (replace this with your actual DataFrame)
import pandas as pd
from collections import defaultdict
# Example DataFrame A (replace this with your actual DataFrame)
A = pd.DataFrame({
'user_id': [1, 2, 3],
'history': [[1, 2, 3], [2, 3, 4], [1, 3, 5]]
})
# Initialize a dictionary to store counts of triples
triple_counts = defaultdict(int)
# Iterate over each row of A
for index, row in A.iterrows():
history = row['history']
n = len(history)
# Iterate over all triples (bi, bj, bk) where i < j < k
for i in range(n):
for j in range(i + 1, n):
for k in range(j + 1, n):
bi = history[i]
bj = history[j]
bk = history[k]
if bi < bj:
triple_counts[(bi, bj, bk)] += 1
else:
triple_counts[(bj, bi, bk)] += 1
# Output the counts of all triples
for triple, count in triple_counts.items():
print(f"Triple {triple}: Count = {count}")
Проблема этого подхода заключается в том, что A представляет собой чрезвычайно большой фрейм данных, а сложность каждой строки равна O(n^3), поэтому выполнение этого вычисления занимает целую вечность. Есть ли более быстрый способ сделать это, используя операции pytorch или тензора?
Предположим, что у меня есть фрейм данных Pandas A со столбцами с именем user_id и историей, где история представляет собой массив целых чисел. А возможные истории ограничены сверху 2000. Мне нужно перебрать все строки A для каждой истории b = [b1, b2, b3, ..., bn]. Все bi уникальны (появляются в массиве только один раз). Мне нужно найти все возможные тройки (bi, bj, bk) такие, что i < j < k, и подсчитать вхождения всех таких троек. Кроме того, мы считаем тройку (bi, bj, bk) такой же, как (bj, bi, bk), если bi > bj. [code]import pandas as pd from itertools import combinations
# Example DataFrame A (replace this with your actual DataFrame) import pandas as pd from collections import defaultdict
# Example DataFrame A (replace this with your actual DataFrame) A = pd.DataFrame({ 'user_id': [1, 2, 3], 'history': [[1, 2, 3], [2, 3, 4], [1, 3, 5]] })
# Initialize a dictionary to store counts of triples triple_counts = defaultdict(int)
# Iterate over each row of A for index, row in A.iterrows(): history = row['history'] n = len(history)
# Iterate over all triples (bi, bj, bk) where i < j < k for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): bi = history[i] bj = history[j] bk = history[k]
if bi < bj: triple_counts[(bi, bj, bk)] += 1 else: triple_counts[(bj, bi, bk)] += 1
# Output the counts of all triples for triple, count in triple_counts.items(): print(f"Triple {triple}: Count = {count}") [/code] Проблема этого подхода заключается в том, что A представляет собой чрезвычайно большой фрейм данных, а сложность каждой строки равна O(n^3), поэтому выполнение этого вычисления занимает целую вечность. Есть ли более быстрый способ сделать это, используя операции pytorch или тензора?
Предположим, что у меня есть фрейм данных Pandas A со столбцами с именем user_id и историей, где история представляет собой массив целых чисел. А возможные истории ограничены сверху 2000. Мне нужно перебрать все строки A для каждой истории b = . Все...
Предположим, что у меня есть фрейм данных Pandas A со столбцами с именем user_id и историей, где история представляет собой массив целых чисел. А возможные истории ограничены сверху 2000. Мне нужно перебрать все строки A для каждой истории b = . Все...
Это простой вопрос, но я нервничаю из-за того, насколько сложным может оказаться ответ.
Я хочу знать в своем заявлении, сколько часов прошло с тех пор эпоха. Точнее, я хочу знать, «сколько раз с момента начала эпохи часы GMT заканчивались на 00»...
Я экспериментировал с C ++ STD :: уникальные функции, но результаты, которые он возвращает, действительно меня смущает. Я сделал простую функцию, чтобы проверить его, например,
#include
#include
#include