У меня есть этот код:
import numpy as np
import pandas as pd
df = pd.DataFrame({'a': np.array([1.2, 2.45, 3.33]),
'b':np.array([11.3, 11.5, 10.13])})
def mycalc(row):
return (np.round( np.dot(row['a'], row['b']) /
(np.linalg.norm(row['a']) * np.linalg.norm(row['b'])), decimals=2))
df['mycalc'] = df.apply(mycalc, axis=1)
df
Я получаю:
a b mycalc
0 1.20 11.30 1.0
1 2.45 11.50 1.0
2 3.33 10.13 1.0
Если я попробую, для первой строки:
(np.round( (np.dot(df.loc[0, 'a'], df.loc[0,'b'])), decimals=2))
Я получаю: 13,56
Если я попробую одно из следующего:
(np.round( (np.dot(df.loc[0, 'a'], df.loc[0,'b'])), decimals=2)) / (np.round((np.linalg.norm(df.loc[0,'a']) * np.linalg.norm(df.loc[0,'b'])), decimals=2))
Или
(np.round( ((np.dot(df.loc[0, 'a'], df.loc[0,'b'])) /
(np.linalg.norm(df.loc[0,'a']) * np.linalg.norm(df.loc[0,'b']))), decimals=2))
Я получаю: 1.0
Как я могу заставить десятичный вывод быть 2?
0
George
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.