小编NPE*_*NPE的帖子

Python fork():将数据从子节点传递给父节点

我有一个主要的Python进程,以及由主进程使用创建的一堆或工作者os.fork().

我需要将大量且相当复杂的数据结构从工作者传递回主进程.你会推荐哪些现有的图书馆?

数据结构是列表,字典,numpy数组,自定义类(我可以调整)和上面的多层组合的混合.

应避免磁盘I/O. 如果我还可以避免创建数据的副本 - 例如通过使用某种共享内存解决方案 - 这也很好,但不是一个硬约束.

出于此问题的目的,必须使用os.fork()克隆主进程的地址空间或其包装来创建工作程序.

这只需要在Linux上运行.

python fork numpy shared-memory large-data

9
推荐指数
1
解决办法
3459
查看次数

Python:默认比较

在Python 2.7中,我定义了一个空的新式类:

In [43]: class C(object): pass
   ....:
Run Code Online (Sandbox Code Playgroud)

然后创建新类的实例列表:

In [44]: c = [C() for i in xrange(10)]
Run Code Online (Sandbox Code Playgroud)

然后尝试对列表进行排序:

In [45]: sorted(c)
Out[45]:
[<__main__.C object at 0x1950a490>,
 <__main__.C object at 0x1950a4d0>,
 ...
 <__main__.C object at 0x1950aad0>]
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,排序并没有抱怨,即使我没有定义比较实例的方法C:

In [46]: dir(C())
Out[46]:
['__class__',
 '__delattr__',
 '__dict__',
 '__doc__',
 '__format__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__module__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__']
Run Code Online (Sandbox Code Playgroud)

到底发生了什么,以及这个 - 可以说是令人惊讶的 - 行为的理由是什么?

python comparison object

9
推荐指数
1
解决办法
3299
查看次数

System.nanoTime()是否保证返回唯一值?

我有一个多线程Java程序,可以在几秒钟内创建数百个临时文件.这些文件放在中/tmp并使用命名System.nanoTime().

文件名是否保证唯一?

java time file temporary-files

9
推荐指数
1
解决办法
4085
查看次数

实例变量初始化器的排序

直观地说,在Java中,实例变量初始化器按它们在类声明中出现的顺序执行.

这肯定是我正在使用的JDK中的情况.例如,以下内容:

public class Clazz {
    int x = 42;
    int y = this.z;
    int z = this.x;
    void print() {
        System.out.printf("%d %d %d\n", x, y, z);
    }
    public static void main(String[] args) {
        new Clazz().print();
    }
}
Run Code Online (Sandbox Code Playgroud)

打印42 0 42(换句话说,y选择默认值z).

这个订单真的有保证吗?我一直在查看JLS,但找不到任何明确的确认.

java initialization

9
推荐指数
1
解决办法
188
查看次数

numpy:有效地读取大数组

我有一个二进制文件,其中包含n*m32位浮点的密集矩阵.将它读入Fortran排序的numpy数组的最有效方法是什么?

该文件的大小为数千兆字节.我控制格式,但它必须是紧凑的(即大约4*n*m字节长度),并且必须易于从非Python代码生成.

编辑:该方法必须直接生成Fortran排序矩阵(由于数据的大小,我无法创建C有序矩阵,然后将其转换为单独的Fortran排序副本.)

python performance numpy scipy large-files

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

如何计算^(1/n)?

我试图计算a^(1/n),其中^表示取幂.

但是,以下内容:

Math.pow(8, 1/3)
Run Code Online (Sandbox Code Playgroud)

返回1.0而不是返回2.0.

这是为什么?

java floating-point division exponentiation

8
推荐指数
2
解决办法
351
查看次数

numpy:布尔索引和内存使用情况

请考虑以下numpy代码:

A[start:end] = B[mask]
Run Code Online (Sandbox Code Playgroud)

这里:

  • A并且B是具有相同列数的2D数组;
  • start并且end是标量;
  • mask 是1D布尔数组;
  • (end - start) == sum(mask).

原则上,上述操作可以使用O(1)临时存储,通过B直接复制元素来进行A.

这是实际发生的事情,还是numpy构建一个临时数组B[mask]?如果是后者,是否有办法通过重写声明来避免这种情况?

python memory-management numpy large-data

7
推荐指数
1
解决办法
976
查看次数

在多重继承中访问超类方法的更好方法

class Animal(object):
    def eat(self):
        print("I eat all")

class C(object):
    def eat(self):
        print("I too eat")

class Wolf(C, Animal):
    def eat(self):
        print("I am Non Veg")
        super(Wolf, self).eat()
        Animal.eat(self)

w = Wolf()
w.eat()
Run Code Online (Sandbox Code Playgroud)

我正在学习python中的多重继承,我想使用方法从派生类访问Animal和方法.Ceatsuper

super内部调用C 类方法的默认调用eat,但调用Animal我使用的类方法.Animal.eat(self)我的问题是如何Animal使用super方法调用类方法.

python

7
推荐指数
1
解决办法
9148
查看次数

从嵌入式ZIP存档中读取文件

我有一个ZIP存档,嵌入在一个更大的文件中.我知道存档在较大文件中的起始偏移量及其长度.

是否有任何Java库可以让我直接读取存档中包含的文件?我正在思考ZipFile.getInputStream().不幸的是,ZipFile这个用例不起作用,因为它的构造函数需要一个独立的ZIP文件.

出于性能原因,我无法在打开之前将ZIP achive复制到单独的文件中.

编辑:为了清楚,我确实可以随机访问该文件.

java zip

7
推荐指数
1
解决办法
2101
查看次数

FPU用什么算法来计算超越函数?

现代FPU用什么方法来计算超越函数

例如,英特尔CPU提供指令,例如FSIN,FCOS,FYL2X等我很好奇,什么样的算法将用于实际的硬件实现这些.

我天真的猜测是泰勒系列可能与一些查找表相结合,但这只不过是一个疯狂的猜测.请赐教.

PS这个问题比英特尔硬件更普遍.

hardware math floating-point fpu numerical-methods

7
推荐指数
1
解决办法
712
查看次数