这可能听起来很基本.但我是Java的新手.到目前为止,我已经投入了很少的初始学习时间,我一直对新对象声明的语法冗余感到困惑:
TypeName a = new TypeName();
Run Code Online (Sandbox Code Playgroud)
特别是,
String s = new String("abc");
Character c = new Character("A");
Run Code Online (Sandbox Code Playgroud)
世界上为什么会有人想要输入关键字TypeName(例如String,Character等...)的两倍?我知道有简短的手:
String s = "abc";
char c = "A";
Run Code Online (Sandbox Code Playgroud)
但这些是例外而不是规则.那么有人可以开导我吗?谢谢.
在Python3中,我应该使用什么类型来检查字典键是否属于它?
>>> d = {1 : 2}
>>> type(d.keys())
<class 'dict_keys'>
Run Code Online (Sandbox Code Playgroud)
所以很自然地我试过这个:
>>> isinstance(d.keys(), dict_keys)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dict_keys' is not defined
Run Code Online (Sandbox Code Playgroud)
我该怎样代替明确的dict_keys第二个参数isinstance?
(这很有用,因为我必须处理可以采用字典键形式的未知输入变量.我知道使用list(d.keys())可以转换为列表(恢复Python2行为)但在这种情况下这不是一个选项.)
我可以使用.loc()以下方法在数据框中创建新行:
>>> df = pd.DataFrame({'a':[10, 20], 'b':[100,200]}, index='1 2'.split())
>>> df
a b
1 10 100
2 20 200
>>> df.loc[3, 'a'] = 30
>>> df
a b
1 10.0 100.0
2 20.0 200.0
3 30.0 NaN
Run Code Online (Sandbox Code Playgroud)
但是如何使用相同的方法创建多个行?
>>> df.loc[[4, 5], 'a'] = [40, 50]
...
KeyError: '[4 5] not in index'
Run Code Online (Sandbox Code Playgroud)
我熟悉.append(),但我正在寻找一种方法,不需要在附加到系列之前将新行构造到系列中df.
期望的输入:
>>> df.loc[[4, 5], 'a'] = [40, 50]
Run Code Online (Sandbox Code Playgroud)
期望的输出
a b
1 10.0 100.0
2 20.0 200.0
3 30.0 NaN
4 40.0 NaN …Run Code Online (Sandbox Code Playgroud) 自从Pandas 0.20.ix已被弃用以来,我想知道在Pandas中混合基于标签,基于布尔和基于位置的索引的正确方法是什么?我需要为一个数据帧切片赋值,这些数据帧可以在索引和列上的位置上使用label或boolean进行最佳引用.例如(使用.loc所需切片方法的占位符):
df.loc[df['a'] == 'x', -12:-1] = 3
显然这不起作用,我得到了:
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [-12] of <class 'int'>
如果我使用.iloc,我得到:
NotImplementedError: iLocation based boolean indexing on an integer type is not available
那么我怎么做,没有链接,显然是为了避免链式分配问题.
我在 Windows Server 2012 R2(也是 AD DC)上安装了 SQL Server 2014。当我尝试从同一本地域上的客户端桌面使用 SQL Server Management Studio (SSMS) 连接到它时,收到以下错误消息:
The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server)
Run Code Online (Sandbox Code Playgroud)
因此,根据同一问题的其他帖子,我在 SQL 服务器上下载了 Kerberos 配置管理器,它发现了 2 个错误的 SPN。Kerberos 配置管理器建议的 SPN 脚本命令如下:
SetSPN -d "MSSQLSvc/SERVERNAME.internal.domain.com" "internal\SERVERNAME$"
SetSPN -s "MSSQLSvc/SERVERNAME.internal.domain.com" "DOMAIN\SERVERNAME$"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在服务器上的 cmd 中运行第一个命令(“SetSPN -d”命令)时,出现以下错误:
FindDomainForAccount: Call to DsGetDcNameWithAccountW failed with return value 0x0000054B
Unable to locate account SERVERNAME$
Run Code Online (Sandbox Code Playgroud)
我不知道如何从这里继续前进。谷歌搜索并没有找到正确的答案。请帮忙。问题是:
1) 错位的 SPN 是罪魁祸首吗?如果是,如何纠正?
2) 如果没有,如何使用 Windows 身份验证从同一本地域上的客户端桌面连接到 SQL Server?
我的问题类似于这个,但是在通过RPy将R导入Python的上下文中.具体来说,当我跑
from rpy import *
Run Code Online (Sandbox Code Playgroud)
在我的python脚本的开头,有一大块消息被转储到屏幕(或输出设备),从开始
Parsing output: R version 2.13.2 (2011-09-30)
Copyright (C) 2011 The R Foundation for Statistical Computing
... ...
Run Code Online (Sandbox Code Playgroud)
我想quiet_require从这里实现,但是没有看到它如何适合导入所有模块的上下文.
我知道这是可能的,因为在另一个盒子上运行的相同程序不会输出任何消息.
UPDATE:这并没有必须的Python内解决.如果我能以某种方式调整R端的变量以允许所有调用都是安静的,那也是有效的.我只是不知道该怎么做.
我有一个使用PDL. 最后一步是点积,因此它返回一个标量。然而,当我尝试打印这个标量时,它显然仍然是一个小数点,并在屏幕上打印如下:
[
[ 3 ]
]
Run Code Online (Sandbox Code Playgroud)
我想知道如何将它转换回常规 Perl 标量,以便它打印如下:
3
Run Code Online (Sandbox Code Playgroud)
更重要的是,如果我不转换并将该 piddle 在纯 Perl 上下文(不涉及 PDL)中进行进一步的算术操作,会产生什么后果。谢谢!
我有一个监视.avi视频文件,其中包括大多数仍然(不变)的帧.但是,某些对象(和人)进入视野并在短时间内退出.我需要提取那些帧.
整个视频持续时间很长(24小时以上),这使我无法实时重播.是否有可以按帧解析文件的Perl模块?有了这个,我想我可以快速将帧转换为一些直方图,并比较相邻的帧,以找到重大的变化.这个网页说明了一般的方法,但我找不到脚本(keyframe.pl)或使用的模块(授予的是.mpeg文件).
如果不存在解析.avi的直接模块,我可以将视频转换为.mpeg(或任何其他形式),那么请直接将我引导到其他可以解析文件的模块?
谢谢!
我有一个带有列多索引的DataFrame:
System A B
Trial Exp1 Exp2 Exp1 Exp2
1 NaN 1 2 3
2 4 5 NaN NaN
3 6 NaN 7 8
Run Code Online (Sandbox Code Playgroud)
对于每个系统(A, B)和每个度量(1, 2, 3以索引表示),结果Exp1始终优于Exp2。因此,我想为每个系统生成一个第三列,将其命名为Final,该列应Exp1在可用时使用,Exp2否则默认使用。理想的结果是
System A B
Trial Exp1 Exp2 Final Exp1 Exp2 Final
1 NaN 1 1 2 3 2
2 4 5 4 NaN NaN NaN
3 6 NaN 6 7 8 7
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
我试图groupby在列上使用:
grp = df.groupby(level=0, …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的 Pandas 系列:
xx = pd.Series([1, 2, np.nan, np.nan, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)
如果我运行这个,我会得到我想要的:
>>> xx.rolling(3,1).mean()
0 1.0
1 1.5
2 1.5
3 2.0
4 3.0
5 3.5
6 4.0
Run Code Online (Sandbox Code Playgroud)
但是,如果我必须使用.apply(),则无法通过忽略操作中的NaNs 来使其mean()工作:
>>> xx.rolling(3,1).apply(np.mean)
0 1.0
1 1.5
2 NaN
3 NaN
4 NaN
5 NaN
6 4.0
>>> xx.rolling(3,1).apply(lambda x : np.mean(x))
0 1.0
1 1.5
2 NaN
3 NaN
4 NaN
5 NaN
6 4.0
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能.apply()在第一个输出中使用并获得结果?我的实际问题更复杂,我必须用.apply()它来实现,但归结为这个问题。
pandas ×4
python ×3
dataframe ×2
perl ×2
append ×1
avi ×1
dictionary ×1
java ×1
kerberos ×1
key ×1
loc ×1
mean ×1
multi-index ×1
nan ×1
pdl ×1
python-3.x ×1
r ×1
rpy2 ×1
scalar ×1
slice ×1
sql-server ×1
sspi ×1
syntax ×1
typechecking ×1
video ×1