小编Bor*_*lik的帖子

在NumPy中逐列生长矩阵

在纯Python中,您可以非常轻松地逐列增长矩阵:

data = []
for i in something:
    newColumn = getColumnDataAsList(i)
    data.append(newColumn)
Run Code Online (Sandbox Code Playgroud)

NumPy的数组没有追加功能.该hstack函数不适用于零大小的数组,因此以下方法不起作用:

data = numpy.array([])
for i in something:
    newColumn = getColumnDataAsNumpyArray(i)
    data = numpy.hstack((data, newColumn)) # ValueError: arrays must have same number of dimensions
Run Code Online (Sandbox Code Playgroud)

所以,我的选择是要么在适当条件下删除initalization iside循环:

data = None
for i in something:
    newColumn = getColumnDataAsNumpyArray(i)
    if data is None:
        data = newColumn
    else:
        data = numpy.hstack((data, newColumn)) # works
Run Code Online (Sandbox Code Playgroud)

...或者使用Python列表并稍后转换为数组:

data = []
for i in something:
    newColumn = getColumnDataAsNumpyArray(i)
    data.append(newColumn)
data = numpy.array(data) …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

20
推荐指数
2
解决办法
2万
查看次数

如何在python中创建新的作用域

在许多语言(和地区)有通过创建类似于块创建本地范围的一个很好的练习.

void foo()
{
     ... Do some stuff ...

     if(TRUE)
     {
         char a;
         int b;

         ... Do some more stuff ...
     }

     ... Do even more stuff ...
 }
Run Code Online (Sandbox Code Playgroud)

如何在python中实现这一点而不会出现意外的缩进错误,并且不使用某种if True: 技巧

python scope

19
推荐指数
4
解决办法
6865
查看次数

R中的静态变量

我在R中有一个我多次调用的函数.我想跟踪我调用它的次数,并使用它来决定在函数内部做什么.这就是我现在所拥有的:

f = function( x ) {
   count <<- count + 1
   return( mean(x) )
}

count = 1
numbers = rnorm( n = 100, mean = 0, sd = 1 )
for ( x in seq(1,100) ) {
   mean = f( numbers )
   print( count )
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢我必须在函数范围之外声明变量count.在C或C++中,我可以创建一个静态变量.我可以用R编程语言做类似的事情吗?

closures r static-variables

18
推荐指数
2
解决办法
6323
查看次数

仅绘制热图的上/下三角形

在maptplotlib中,可以使用imshow函数创建相关矩阵的热图表示.根据定义,这种矩阵围绕其主对角线对称,因此不需要呈现上三角和下三角.例如: 相关矩阵

上面的例子来自这个网站 不幸的是,我无法弄清楚如何在matplotlib中做到这一点.将矩阵的上/下部分设置为无会导致黑色三角形.我用google搜索"matplotlib缺失值",但找不到任何有用的东西

python plot matplotlib

16
推荐指数
3
解决办法
2万
查看次数

在matplotlib中用几种颜色绘制标题

matplotlib图标题中是否可以有多种字体颜色?像这样的东西 标题中有三种颜色

matplotlib

14
推荐指数
2
解决办法
1万
查看次数

无法使cProfile在IPython中工作

我遗漏了一些非常基本的东西.

class C:
    def __init__(self):
        self.N = 100
        pass

    def f(self, param):
        print 'C.f -- param'
        for k in xrange(param):
            for i in xrange(self.N):
                for j in xrange(self.N):
                    a = float(i)/(1+float(j)) + float(i/self.N) ** float(j/self.N)

import cProfile

c = C()
cProfile.run('c.f(3)')
Run Code Online (Sandbox Code Playgroud)

当我在IPython中运行上面的代码时,我得到:

NameError: name 'c' is not defined
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

更新我的会话的确切粘贴在这里:http://pastebin.com/f3e1b9946

更新我没有提到问题出现在IPython中,(事实证明)是问题的根源

python profiler profiling ipython

13
推荐指数
2
解决办法
5094
查看次数

吸气剂有副作用

我创建了一个类,其对象使用一堆XML代码进行初始化.该类能够从该XML中提取各种参数,并将它们缓存在对象状态变量中.这些参数的潜在数量很大,很可能用户不需要大部分参数.这就是我决定执行"懒惰"初始化的原因.

在下面的测试用例中,这样的参数是title.当用户第一次尝试访问它时,getter函数会解析XML,正确初始化状态变量并返回其值:

class MyClass(object):     
    def __init__(self, xml=None):
        self.xml  = xml
        self.title = None

    def get_title(self):
        if self.__title is None:
            self.__title = self.__title_from_xml()
        return self.__title

    def set_title(self, value):
        self.__title = value

    title = property(get_title, set_title, None, "Citation title")

    def __title_from_xml(self):
        #parse the XML and return the title
        return title         
Run Code Online (Sandbox Code Playgroud)

这看起来不错,对我来说很好.但是,由于getter函数实际上是一个"setter",因为它对对象有非常显着的副作用,我对此感到不安.这是一个合理的担忧吗?如果是这样,我该如何解决?

python design-patterns for-loop side-effects getter-setter

13
推荐指数
2
解决办法
992
查看次数

在有向树(igraph)中从一个节点到另一个节点的所有可能路径

我使用python绑定igraph来表示有向树.我想找到从该图中的一个节点到另一个节点的所有可能路径.不幸的是,我无法在执行此任务的igraph中找到准备使用的功能?

编辑

对无限数量路径的关注

我所说的图实际上是一个带有单根的有向无环图(DAG).它代表了一个单向的级联事件,在级联的各个级别上,可以分裂或连接在一起.正如我所说,这是一个单向图.还规定图表不包含任何循环.由于这两个原因,无限的路径列表是不可能的.

我想做什么?

我的目标是找到从图形顶部(根)到给定节点的所有可能路径.

python algorithm igraph directed-acyclic-graphs

11
推荐指数
1
解决办法
1万
查看次数

删除ggplot2图例中的点透明度

在ggplot2中,geom_XXX中定义的透明度反映在图例中.例如:

df <- data.frame(x=runif(10000),  z=ifelse(runif(10000) > 0.5, 'a', 'b')); df$y <- runif(10000); df$y[df$z == 'b'] <- cos(df$x[df$z == 'b']*10)
ggplot(df) + geom_point(aes(x, y, color=z), alpha=0.1)
Run Code Online (Sandbox Code Playgroud)

给出以下结果:

我们有什么

由于这些点非常透明,因此很难在图例中看到它们.我想从图例中删除点透明度,以便图形如下所示:

我想要的是

这怎么可能?

r ggplot2

11
推荐指数
1
解决办法
2809
查看次数

关于Xorshift随机数生成器算法

以下是Xorshift RNG 的基本实现(复制自维基百科):

uint32_t xor128(void) {
  static uint32_t x = 123456789;
  static uint32_t y = 362436069;
  static uint32_t z = 521288629;
  static uint32_t w = 88675123;
  uint32_t t;

  t = x ^ (x << 11);
  x = y; y = z; z = w;
  return w = w ^ (w >> 19) ^ (t ^ (t >> 8));
}
Run Code Online (Sandbox Code Playgroud)

我理解这w是返回的值x,y并且z是状态("内存")变量.但是,我无法理解多个内存变量的目的.谁能解释我这一点?

另外,我尝试将上面的代码复制到Python:

class R2:
    def __init__(self):
        self.x = x = 123456789
        self.y …
Run Code Online (Sandbox Code Playgroud)

language-agnostic random algorithm

10
推荐指数
1
解决办法
3574
查看次数