使用R,我有一个矢量,如
a <- c(0.1,0.6,23,Inf,NaN)
Run Code Online (Sandbox Code Playgroud)
我想把它转换成类似的东西
c("Finite","Finite","Finite","Inf","NaN")
Run Code Online (Sandbox Code Playgroud)
尽可能少的痛苦.这是怎么做到的?
谢谢!乌里
我正在尝试布局一些图表并使用pygraphviz它。我构建图表并执行
graph.layout(prog='dot')
Run Code Online (Sandbox Code Playgroud)
当我执行时print graph,它会输出点格式表示,如下所示:
...
94 [height="0.5", pos="1485,18", width="0.75"];
93 -> 94 [pos="e,1485,36.104 1485,71.697 1485,63.983 1485,54.712 1485,46.112"];
98 [height="0.5", pos="1557,18", width="0.75"];
97 -> 98 [pos="e,1557,36.104 1557,71.697 1557,63.983 1557,54.712 1557,46.112"];
...
Run Code Online (Sandbox Code Playgroud)
对于每个节点,属性的含义非常清楚pos。但这对于边缘意味着什么呢?我相信它可能以某种方式引用三次样条表示,但是如果我想在 matplotlib 中手动绘制边缘,我将如何使用这些点?
谢谢!乌里
我有一个 python 包,我想像这样组织:
root/
setup.py
package1/
__init__.py
package2/
__init__.py
package3/
__init__.py
Run Code Online (Sandbox Code Playgroud)
我想将、、 和作为顶级包setup.py安装到正确的目录中,以便我可以执行package1package2package3site-packages/
import package1
import package2
import package3
Run Code Online (Sandbox Code Playgroud)
没有问题。也许这需要多个setup.py文件?
但最重要的是,我希望最终能够通过执行来安装所有三个软件包pip install root。我该怎么做呢?最好是一个distutils唯一的解决方案,尽管 setuptools 也可以。
当我运行PySpark时,执行
sc._gateway.help(sc._jsc)
Run Code Online (Sandbox Code Playgroud)
成功给了我一些不错的输出
JavaSparkContext extends org.apache.spark.api.java.JavaSparkContextVarargsWorkaround implements java.io.Closeable {
|
| Methods defined here:
|
| accumulable(Object, String, AccumulableParam) : Accumulable
|
| accumulable(Object, AccumulableParam) : Accumulable
|
| accumulator(double, String) : Accumulator
|
| accumulator(Object, AccumulatorParam) : Accumulator
|
| accumulator(Object, String, AccumulatorParam) : Accumulator
|
| accumulator(double) : Accumulator
...
Run Code Online (Sandbox Code Playgroud)
在跑步的时候
sc._gateway.help(sc._jsc.sc())
Run Code Online (Sandbox Code Playgroud)
给我一个Java NPE的Py4J错误
Py4JError: An error occurred while calling None.None. Trace:
java.lang.NullPointerException
at py4j.model.Py4JMember.compareTo(Py4JMember.java:54)
at py4j.model.Py4JMember.compareTo(Py4JMember.java:39)
at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:290)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:157)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at java.util.Arrays.sort(Arrays.java:472)
at java.util.Collections.sort(Collections.java:155)
at …Run Code Online (Sandbox Code Playgroud) 我有一个聚合问题,我无法弄清楚如何在R中有效地执行.
说我有以下数据:
group1 <- c("a","b","a","a","b","c","c","c","c",
"c","a","a","a","b","b","b","b")
group2 <- c(1,2,3,4,1,3,5,6,5,4,1,2,3,4,3,2,1)
value <- c("apple","pear","orange","apple",
"banana","durian","lemon","lime",
"raspberry","durian","peach","nectarine",
"banana","lemon","guava","blackberry","grape")
df <- data.frame(group1,group2,value)
Run Code Online (Sandbox Code Playgroud)
我对采样从所述数据帧df,使得我随机的因素每个组合只挑选单个行group1和group2.
如你所见,结果 table(df$group1,df$group2)
1 2 3 4 5 6
a 2 1 2 1 0 0
b 2 2 1 1 0 0
c 0 0 1 1 2 1
Run Code Online (Sandbox Code Playgroud)
表明某些组合不止一次出现,而其他组合从未见过.对于那些被多次看到的人(例如,group1="a"和group2=3),我想只随机选择一个相应的行并返回一个只包含该行子集的新数据帧.这样,分组因子的每个可能组合仅由数据帧中的单个行表示.
这里的一个重要方面是我的实际数据集可以包含从500,000行到> 2,000,000行的任何内容,因此注意性能非常重要.
我在R比较新,所以我一直在弄清楚如何正确地生成这个结构.一次尝试看起来像这样(使用plyr包):
choice <- function(x,label) {
cbind(x[sample(1:nrow(x),1),],data.frame(state=label))
}
df <- ddply(df[,c("group1","group2","value")],
.(group1,group2),
pick_junc,
label="test")
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,我还在名为"label"的数据框中添加了一个额外的列,该列被指定为ddply函数的额外参数.但是,我在大约20分钟后杀了这个.
在其他情况下,我尝试使用 …
例如:
String 1: AGGCCT
|| | |
String 2: AGCCAT
Run Code Online (Sandbox Code Playgroud)
这两个字符串在4个位置是相同的,所以我想要的函数将返回4.
除了同时迭代两个字符串的明显方法之外,还有一种聪明的(即快速)方法吗?
谢谢!乌里
我有一个名为nesteddict的类,派生自collections.defaultdict,它包含一组嵌套的字典:
import collections
class nesteddict(collections.defaultdict):
"""Nested dictionary structure.
Based on Stack Overflow question 635483
"""
def __init__(self):
collections.defaultdict.__init__(self, nesteddict)
self.locked = False
Run Code Online (Sandbox Code Playgroud)
我希望能够执行一个操作,将所有nesteddict对象转换为python-native dict对象.
一种方法是使用一种方法:
def todict(self):
for (key,val) in self.iteritems():
if isinstance(val,nesteddict):
val.todict()
self[key] = dict(val)
self = dict(self)
Run Code Online (Sandbox Code Playgroud)
这是成功用dict类型替换所有内部映射对象,但方法中的最后一个语句显然不起作用.
这是一个例子:
In [93]: a = pyutils.nesteddict()
In [94]: a[1][1] = 'a'
In [95]: a[1][2] = 'b'
In [96]: a[2][1] = 'c'
In [97]: a[2][2] = 'd'
In [98]: print a
defaultdict(<class 'pyutils.nesteddict'>, {1: defaultdict(<class 'pyutils.nesteddict'>, {1: 'a', 2: 'b'}), …Run Code Online (Sandbox Code Playgroud) python ×3
r ×2
aggregation ×1
apache-spark ×1
build ×1
dataframe ×1
distutils ×1
graph ×1
graphviz ×1
installation ×1
matplotlib ×1
networkx ×1
oop ×1
plyr ×1
py4j ×1
pygraphviz ×1
pyspark ×1
setuptools ×1
string ×1