我在他的书的网站上读过Hadley Wickham的Advanced R. 我在R中找到了关于替换函数的问题.根据他的书给出了以下结果.
library(pryr)
x <- 1:10
address(x)
#> [1] "0x103945110"
x[2] <- 7L
address(x)
#> [1] "0x103945110"
Run Code Online (Sandbox Code Playgroud)
如果我们只是替换x的第二个元素,他认为x的地址不会改变.但是,当我这样做时,x的物理地址实际上已经改变了.那么,有谁告诉我为什么?
我sklearn.preprocessing.StandardScaler用来重新缩放数据。我想用来np.std做同样的事情StandardScaler。
但是,我发现一个有趣的事情,没有传入其他参数pandas.apply(fun = np.std),输出在样本std和总体std之间变化。(请参阅2问题)
我知道有一个参数叫来ddof在计算样本方差时控制除数,不更改默认参数ddof = 0,如何获得不同的输出!
首先,以虹膜数据集为例。我按如下方式缩放数据的第一列。
from sklearn import datasets
import numpy as np
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
X_train = iris.data[:,[1]] # my X_train is the first column if iris data
sc = StandardScaler()
sc.fit(X_train) # Using StandardScaler to scale it!
Run Code Online (Sandbox Code Playgroud)
ddof = 0我得到了np.std的不同输出!import pandas as pd
import sys
print("The mean and std(sample std) of X_train is :")
print(pd.DataFrame(X_train).apply([np.mean,np.std],axis …Run Code Online (Sandbox Code Playgroud) 该scipy.stats库具有查找拟合分布的均值和中位数的函数,但不具有查找众数的函数。
如果我在拟合数据后有分布的参数,我如何找到mode拟合分布的参数?
我StratifiedShuffleSplit对 Sklearn类的工作原理有点困惑。
下面的代码来自 Géron 的书“Hands On Machine Learning”,第 2 章,他在那里进行了分层抽样。
from sklearn.model_selection import StratifiedShuffleSplit
split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in split.split(housing, housing["income_cat"]):
strat_train_set = housing.loc[train_index]
strat_test_set = housing.loc[test_index]
Run Code Online (Sandbox Code Playgroud)
特别是,在做什么split.split?
谢谢!
我正在做搜索引擎的查询分析。用户可以在一个会话的不同时间在谷歌搜索引擎上一一搜索不同的查询。
我有多个字段的数据:session_id、log_time、query、feature_i等。我想分组session_id,然后按 的concat顺序将几行合并为一行。这样输出数据将以时间序列的方式表示用户的行为。log_time
代码:
toy_data = pd.DataFrame({'session_id':[1,2,1,2,3,3,],
'log_time':[4,5,6,1,2,3],
'query':['hi','dude','pandas','groupby','sort','agg'],
'cate_feat_0':['apple','banana']*3,
'num_feat_0':[1,2,3,4,5,6]})
print(toy_data)
Run Code Online (Sandbox Code Playgroud)
输出:
session_id log_time query cate_feat_0 num_feat_0
0 1 4 hi apple 1
1 2 5 dude banana 2
2 1 6 pandas apple 3
3 2 1 groupby banana 4
4 3 2 sort apple 5
5 3 3 agg banana 6
Run Code Online (Sandbox Code Playgroud)
我想要的是:
## note that all list are sorted by log time …Run Code Online (Sandbox Code Playgroud) 我有一个这样的功能:
myfunc <- function(x){
a1 = 1
a2 = c(2,4)
a3 = data.frame(x = 1:10)
...
an = 'str'
res = list(a1 = a1,a2 = a2,..., an=an)
return(res)
}
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,我返回带有命名列表的结果。但是,如果元素数量很大,我无法a_i = a_i一一键入。我使用下面的代码片段来节省一半的时间(但我仍然需要输入"元素的名称,这是浪费时间):
res_short = sapply(c('a1','a2',...,'an'),FUN = function(x){list(get(x))})
return(res_short)
Run Code Online (Sandbox Code Playgroud)
请注意,我的元素名称中可能不存在模式a1,a2,...,an,我只是使用a1, a2...an来简化。
我想我返回一个命名列表是好的,因为列表可以存储不同类型的元素。有没有其他方法可以编写我的函数返回?我想明确的和节省时间的!
python ×4
pandas ×2
r ×2
scikit-learn ×2
apply ×1
dataframe ×1
dataset ×1
distribution ×1
function ×1
group-by ×1
numpy ×1
return ×1
scipy ×1
sorting ×1
statistics ×1