我和jupyter-notebook有一个奇怪的问题.
我正在练习笔记本,它有降价和代码单元格.
当我保存并重新打开笔记本时,我可以编辑代码单元格,但不能编辑降价单元格.
尝试:
1.重新加载页面.
2.让笔记本电脑值得信赖.
3.尝试将单元格类型从markdown更改为code或raw但仍无法编辑.
注意:我可以删除markdown上的一些字母,但我不能添加任何字母.此外,如果我按Enter键将创建新行,但我不能在那里写任何东西.
问题 我们如何编辑jupyter-notebook的降价单元格?
代码如下:
https://github.com/bhishanpdl/Shared_to_public/blob/master/notebook_problem/example.ipynb
我想知道如何在熊猫中正确计算偏度和峰度。Pandas 给出了一些值skew()和kurtosis()值,但它们似乎与值大不相同scipy.stats。哪个信任熊猫或scipy.stats?
这是我的代码:
import numpy as np
import scipy.stats as stats
import pandas as pd
np.random.seed(100)
x = np.random.normal(size=(20))
kurtosis_scipy = stats.kurtosis(x)
kurtosis_pandas = pd.DataFrame(x).kurtosis()[0]
print(kurtosis_scipy, kurtosis_pandas)
# -0.5270409758168872
# -0.31467107631025604
skew_scipy = stats.skew(x)
skew_pandas = pd.DataFrame(x).skew()[0]
print(skew_scipy, skew_pandas)
# -0.41070929017558555
# -0.44478877631598901
Run Code Online (Sandbox Code Playgroud)
版本:
print(np.__version__, pd.__version__, scipy.__version__)
1.11.0 0.20.0 0.19.0
Run Code Online (Sandbox Code Playgroud) 我被困在如何应用自定义函数来计算从 Pandas groupby 获得的两组的 p 值。
test = 0 ==> test
test = 1 ==> control
Run Code Online (Sandbox Code Playgroud)
import numpy as np
import pandas as pd
import scipy.stats as ss
np.random.seed(100)
N = 15
df = pd.DataFrame({'country': np.random.choice(['A','B','C'],N),
'test': np.random.choice([0,1], N),
'conversion': np.random.choice([0,1], N),
'sex': np.random.choice(['M','F'], N)
})
ans = df.groupby(['country','test'])['conversion'].agg(['size','mean']).unstack('test')
ans.columns = ['test_size','control_size','test_mean','control_mean']
test_size control_size test_mean control_mean
country
A 3 3 0.666667 0.666667
B 1 1 1.000000 1.000000
C 4 3 0.750000 1.000000
Run Code Online (Sandbox Code Playgroud)
现在我想再添加两列以获取测试组和对照组之间的 p 值。但是在我的 groupby 中,我一次只能对一个系列进行操作,我不确定如何使用两个系列来获得 …
类似的问题:
Catboost 教程
在这个问题中,我有一个二元分类问题。建模后,我们得到了测试模型预测y_pred,并且我们已经有了真正的测试标签y_true。
我想获得由以下等式定义的自定义评估指标:
profit = 400 * truePositive - 200*fasleNegative - 100*falsePositive
Run Code Online (Sandbox Code Playgroud)
另外,由于利润越高越好,我想最大化该功能而不是最小化它。
如何在catboost中获取这个eval_metric?
profit = 400 * truePositive - 200*fasleNegative - 100*falsePositive
Run Code Online (Sandbox Code Playgroud)
def get_profit(y_true, y_pred):
tn, fp, fn, tp = sklearn.metrics.confusion_matrix(y_true,y_pred).ravel()
loss = 400*tp - 200*fn - 100*fp
return loss
scoring = sklearn.metrics.make_scorer(get_profit, greater_is_better=True)
Run Code Online (Sandbox Code Playgroud)
如何在catboost中完成自定义eval指标?
到目前为止我的更新
class ProfitMetric(object):
def get_final_error(self, error, weight):
return error / (weight + 1e-38)
def is_max_optimal(self):
return True
def …Run Code Online (Sandbox Code Playgroud) 我搜索了一整天如何在 google colaboratory jupyter notebooks 中显示情节图的输出。有一个 stackoverflow question 和来自 google colaboratory 的官方教程,但它们都对我不起作用。
官方链接:https :
//colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj
stackoverflow 问题:
Plotly notebook 模式与 google colaboratory
https://colab.research.google.com/drive/14oudHx5e5r7hm1QcbZ24FVHXgVPD0k8f#scrollTo=8RCjUVpi2_xd
内置的 google colaboratory plotly 版本是 1.12.12。
import plotly
plotly.__version__
1.12.12
Run Code Online (Sandbox Code Playgroud)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)
from google.colab import drive
drive.mount('/content/drive')
dat_dir = 'drive/My Drive/Colab Notebooks/data/'
Run Code Online (Sandbox Code Playgroud)
# https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj
def enable_plotly_in_cell():
import IPython
from plotly.offline import init_notebook_mode
display(IPython.core.display.HTML('''
<script src="/static/components/requirejs/require.js"></script>
'''))
init_notebook_mode(connected=False)
Run Code Online (Sandbox Code Playgroud)
我想知道如何使用突出显示熊猫数据框的对角线元素 df.style方法。
我找到了这个官方链接,他们讨论了如何突出最大值,但我很难创建突出对角元素的函数。
下面是一个例子:
import numpy as np
import pandas as pd
df = pd.DataFrame({'a':[1,2,3,4],'b':[1,3,5,7],'c':[1,4,7,10],'d':[1,5,9,11]})
def highlight_max(s):
'''
highlight the maximum in a Series yellow.
'''
is_max = s == s.max()
return ['background-color: yellow' if v else '' for v in is_max]
df.style.apply(highlight_max)
Run Code Online (Sandbox Code Playgroud)
我只想要对角线元素 1,3,7,11 上的黄色突出显示。
怎么做?
我已经使用 jupyter notebook 很长时间了。最近我正在使用 google colab 进行一些实验。我在 jupyter notebook 中经常做的一件事是使用“代码美化”扩展名格式化代码。
有没有办法在 google colab 中使用这个扩展?
我将不胜感激这些建议。
参考
我见过很多关于相似性矩阵的堆栈溢出问题,但它们处理 RDD 或其他情况,我找不到我的问题的直接答案,我决定发布一个新问题。
import numpy as np
import pandas as pd
import pyspark
from pyspark.sql import functions as F, Window
from pyspark import SparkConf, SparkContext, SQLContext
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.feature import StandardScaler,Normalizer
from pyspark.mllib.linalg.distributed import IndexedRow, IndexedRowMatrix
spark = pyspark.sql.SparkSession.builder.appName('app').getOrCreate()
sc = spark.sparkContext
sqlContext = SQLContext(sc)
# pandas dataframe
pdf = pd.DataFrame({'user_id': ['user_0','user_1','user_2'],
'apple': [0,1,5],
'good banana': [3,0,1],
'carrot': [1,2,2]})
# spark dataframe
df = sqlContext.createDataFrame(pdf)
df.show()
+-------+-----+-----------+------+
|user_id|apple|good banana|carrot|
+-------+-----+-----------+------+
| user_0| 0| 3| 1|
| …Run Code Online (Sandbox Code Playgroud) 问题:我在MacOs 10.9中使用pip3安装了python3和jupyter笔记本。
当我尝试运行窗口小部件时,出现错误,提示没有javascript小部件。我在Jupyter-notebook中安装了python3和R内核。
码:
from ipywidgets import widgets
from IPython.display import display
text = widgets.Text()
display(text)
text.on_submit('hello')
Run Code Online (Sandbox Code Playgroud)
错误:
Widget Javascript not detected. It may not be installed or enabled properly.
Run Code Online (Sandbox Code Playgroud)
尝试次数:
sudo -H pip3 install ipywidgets
sudo -H pip3 install -upgrade ipywidgets
jupyter nbextension enable --py widgetsnbextension
# restarted the computer.
Run Code Online (Sandbox Code Playgroud)
最后一条命令给出错误。
[EnableNBExtensionApp] CRITICAL | Bad config encountered during initialization:
[EnableNBExtensionApp] CRITICAL | Unrecognized flag: '--py'
Run Code Online (Sandbox Code Playgroud)
请注意,在Mac中,我有jupyter-nbextension命令,但该命令为:
jupyter-nbextension enable --py widgetsnbextension
Run Code Online (Sandbox Code Playgroud)
也不起作用。
但是jupyter nbextension enable widgetsnbextension没有错误,也没有任何作用。如果运行代码,则会弹出相同的错误。
也,
import …Run Code Online (Sandbox Code Playgroud) 我试图使用 seaborn 进行绘图,但标签没有显示出来,即使它被分配在轴对象中。
如何在情节上显示标签?
这是我的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
dx = pd.DataFrame({'c0':range(5), 'c1':range(5,10)})
dx.index = list('abcde')
ax = sns.pointplot(x=dx.index,
y="c0",
data=dx, color="r",
scale=0.5, dodge=True,
capsize=.2, label="child")
ax = sns.pointplot(x=dx.index,
y="c1",
data=dx, color="g",
scale=0.5, dodge=True,
capsize=.2, label="teen")
ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
图例给出了错误:
No handles with labels found to put in legend.
python ×9
pandas ×4
scipy ×2
apache-spark ×1
catboost ×1
markdown ×1
matplotlib ×1
numpy ×1
p-value ×1
plotly ×1
pyspark ×1
scikit-learn ×1
seaborn ×1