我正在阅读一些旧代码,试图理解它的作用,我偶然发现了这个奇怪的声明:
*x ,= p
Run Code Online (Sandbox Code Playgroud)
p是这个上下文中的列表.我一直试图弄清楚这句话的作用.据我所知,它只是设置x为的值p.例如:
p = [1,2]
*x ,= p
print(x)
Run Code Online (Sandbox Code Playgroud)
只是给
[1, 2]
Run Code Online (Sandbox Code Playgroud)
这有什么不同x = p吗?知道这个语法在做什么吗?
我正在尝试检查特定值是否在数据框中的任何位置.
我知道%in%操作员应该允许我这样做,但它似乎没有按照我期望的方式应用于整个数据框:
A = data.frame(B=c(1,2,3,4), C=c(5,6,7,8))
1 %in% A
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其应用于特定列,则值将按照我期望的方式运行:
1 %in% A$C
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
检查值是否在数据框中的任何位置的正确方法是什么?
我有一个列表,我想以相反的顺序获取最后几个元素:
lst = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我可以反转列表lst[::-1]并反转整个列表.但我希望反向列表只能达到某个索引.我可以指定一个索引:
ind = 1
lst[:ind-1:-1]
Run Code Online (Sandbox Code Playgroud)
得到:
[4, 3, 2]
Run Code Online (Sandbox Code Playgroud)
这是指向索引的原始列表,顺序相反.这适用于任何索引> 0.但如果ind为0(意味着应以相反的顺序返回整个列表),这会导致问题:
ind = 0
lst[:ind-1:-1]
Run Code Online (Sandbox Code Playgroud)
收益:
[]
Run Code Online (Sandbox Code Playgroud)
因为我的结局与我的开头(-1)相同.我的预期/期望输出将是[4, 3, 2, 1]
我知道一个简单的解决方法是将一个if语句用于捕获ind为0的情况,或者分两步执行(index然后反向),但感觉这应该可以用Python中的索引系统来实现.我错了吗?
在 Python 中,XGBoost 允许您使用其 Booster 类或使用其 sklearn API ( http://xgboost.readthedocs.io/en/latest/python/python_api.html ) 进行训练/预测。我正在使用 sklearn API,并且想要使用pred_contribsXGBoost 的功能。我希望这能起作用,但事实并非如此:
model = xgb.XGBClassifier().fit(X_train, y_train)
pred = model.predict_proba(X_test, pred_contribs=True)
Run Code Online (Sandbox Code Playgroud)
看起来pred_contribs只是Booster类预测函数的一个参数。如何通过 sklearn API 使用此参数?或者是否有一个简单的解决方法可以在使用 sklearn API 进行训练后获取预测贡献者?
在Python中是否有一种简单的方法可以生成一个范围内的随机数,但不包括该范围内的某些数字子集?
例如,我知道您可以生成0到9之间的随机数:
from random import randint
randint(0,9)
Run Code Online (Sandbox Code Playgroud)
如果我有一个列表,例如exclude=[2,5,7]我不想被退回怎么办?
我想检查数据框中的列是否包含字符串.我原以为这可以通过检查dtype来完成,但事实并非如此.包含字符串的pandas系列只有dtype'object',它也用于其他数据结构(如列表):
df = pd.DataFrame({'a': [1,2,3], 'b': ['Hello', '1', '2'], 'c': [[1],[2],[3]]})
df = pd.DataFrame({'a': [1,2,3], 'b': ['Hello', '1', '2'], 'c': [[1],[2],[3]]})
print(df['a'].dtype)
print(df['b'].dtype)
print(df['c'].dtype)
Run Code Online (Sandbox Code Playgroud)
生产:
int64
object
object
Run Code Online (Sandbox Code Playgroud)
有没有办法检查列是否只包含字符串?
我正在尝试运行LSTM,当我使用下面的代码时:
model.compile(optimizer='rmsprop', loss='binary_crossentropy',
metrics=['accuracy', 'f1score', 'precision', 'recall'])
Run Code Online (Sandbox Code Playgroud)
它返回:
ValueError: ('Unknown metric function', ':f1score').
Run Code Online (Sandbox Code Playgroud)
我完成了我的搜索,发现了这个网址:https: //github.com/fchollet/keras/issues/5400
此url中"model.compile"部分中的"metrics"与我的完全相同,并且不返回任何错误.
使用 wordcloud2 cran 页面( https://cran.r-project.org/web/packages/wordcloud2/vignettes/wordcloud.html )上的 rshiny 示例,我在 wordcloud 下方得到了一个额外的小框。每当我使用 wordcloud2 包的 rshiny 功能时就会发生这种情况:
生成这个的代码只是:
library(wordcloud2)
# Global variables can go here
n <- 1
# Define the UI
ui <- bootstrapPage(
numericInput('size', 'Size of wordcloud', n),
wordcloud2Output('wordcloud2')
)
# Define the server code
server <- function(input, output) {
output$wordcloud2 <- renderWordcloud2({
# wordcloud2(demoFreqC, size=input$size)
wordcloud2(demoFreq, size=input$size)
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据分组将一列字符串连接在一起。我使用的代码在我看来与其他人使用的代码相同(例如使用 dplyr 连接列)但它不起作用,我不知道为什么。
a = tibble(
x = c(1,2,1,2),
z = c('1','2','3','4')
)
a %>% group_by(x) %>% summarise(val=paste(z, collapse=" "))
Run Code Online (Sandbox Code Playgroud)
给出:
val
1 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
就好像只有一组一样。然而,当我执行不同的功能时,分组工作正常:
a %>% group_by(x) %>% tally()
# A tibble: 2 × 2
x n
<dbl> <int>
1 1 2
2 2 2
Run Code Online (Sandbox Code Playgroud)
知道可能是什么问题吗?
我有一个包含字符串的pandas列.我想得到整个专栏中所有单词的字数.没有循环遍历每个值,最好的方法是什么?
df = pd.DataFrame({'a': ['some words', 'lots more words', 'hi']})
Run Code Online (Sandbox Code Playgroud)
运行时df['a'],你应该得到6
我正在尝试使用Python连接到Oracle服务器。我可以在cx_Oracle中使用它,但是当我尝试使用sqlalchemy连接时会失败。cx_Oracle代码:
import cx_Oracle
import pandas as pd
cx_connection = cx_Oracle.connect(user+'/' + pw + '@' + host + ':' + port + '/' + db)
df = pd.read_sql(my_query, cx_connection)
Run Code Online (Sandbox Code Playgroud)
根据查询执行并从数据库返回数据。如果我尝试使用sqlalchemy进行相同的连接:
import sqlalchemy
engine = sqlalchemy.create_engine('oracle+cx_oracle://' + user + ':' + pw + '@' + host + ':' + port + '/' + db)
sqlalchemy_connection = engine.connect()
Run Code Online (Sandbox Code Playgroud)
我在最后一行收到错误:
DatabaseError:(cx_Oracle.DatabaseError)ORA-12505:TNS:listener当前不知道连接描述符中给出的SID(有关此错误的背景,网址为:http : //sqlalche.me/e/4xp6)
知道是什么问题吗?sqlalchemy不只是使用cx_Oracle吗?有什么解决方法可以将cx_Oracle连接赋予sqlalchemy吗?
python ×7
r ×3
pandas ×2
cx-oracle ×1
dataframe ×1
dplyr ×1
keras ×1
list ×1
metrics ×1
python-3.x ×1
random ×1
scikit-learn ×1
shiny ×1
sqlalchemy ×1
word-cloud ×1
xgboost ×1