小编NPE*_*NPE的帖子

numpy:列式点积

给定一个2D numpy数组,我需要计算每列的点积,并将结果存储在一维数组中.以下作品:

In [45]: A = np.array([[1,2,3,4],[5,6,7,8]])

In [46]: np.array([np.dot(A[:,i], A[:,i]) for i in xrange(A.shape[1])])
Out[46]: array([26, 40, 58, 80])
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以避免Python循环吗?以上几乎不是世界末日,但如果有numpy这个原因,我想用它.

编辑在实践中,矩阵有许多行和相对较少的列.因此,我并不过分热衷于创建大于的临时数组O(A.shape[1]).我也无法修改A到位.

python numpy dot-product

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

将Python对象放在共享内存中

是否有一个Python模块可以让我将非平凡用户类的实例放入共享内存?

我的意思是直接在共享内存中分配,而不是酸洗进出.

multiprocessing.Value并且multiprocessing.Array不适用于我的用例,因为它们似乎只支持原始类型和数组.

到目前为止我唯一发现的是POSH,但它在八年内没有改变.这表明它要么是超稳定的,要么是过时的.在我花时间试图让它发挥作用之前,我想知道是否有其他我尚未发现的替代品.

我只需要在Linux上工作.

python allocation shared-memory

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

String.replaceAll()抛出IndexOutOfBoundsException

java.lang.IndexOutOfBoundsException当我replaceAll()用替换文本调用时,我得到了$1:

这是一个更复杂的代码,但我简化如下:

http://ideone.com/QCof3

class Test {
    public static void main(String args[]) {
        String test = "@Key";
        String replacement = "$1";
        test = test.replaceAll("@Key", replacement);
        System.out.println(test);
    }
}


Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 1
    at java.util.regex.Matcher.group(Matcher.java:470)
    at java.util.regex.Matcher.appendReplacement(Matcher.java:737)
    at java.util.regex.Matcher.replaceAll(Matcher.java:813)
    at java.lang.String.replaceAll(String.java:2189)
    at Test.main(Main.java:5)
Run Code Online (Sandbox Code Playgroud)

这个问题有没有解决方法?我不想使用第三方库.

java

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

加速numpy.dot

我有一个numpy脚本,它在以下代码中占用了大约50%的运行时间:

s = numpy.dot(v1, v1)

哪里

v1 = v[1:]

v是一个4000元件1D ndarrayfloat64存储在连续的存储器(v.strides(8,)).

有什么建议加快这个?

编辑这是在Intel硬件上.这是我的输出numpy.show_config():

atlas_threads_info:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/local/atlas-3.9.16/lib']
    language = f77
    include_dirs = ['/usr/local/atlas-3.9.16/include']

blas_opt_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/local/atlas-3.9.16/lib']
    define_macros = [('ATLAS_INFO', '"\\"3.9.16\\""')]
    language = c
    include_dirs = ['/usr/local/atlas-3.9.16/include']

atlas_blas_threads_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/local/atlas-3.9.16/lib']
    language = c
    include_dirs = ['/usr/local/atlas-3.9.16/include']

lapack_opt_info:
    libraries = …
Run Code Online (Sandbox Code Playgroud)

python performance numpy dot-product

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

numpy:反转上三角矩阵

numpy/ scipy,什么是计算上三角矩阵的逆的规范方法?

矩阵存储为numpy具有零个子对角线元素的2D 阵列,并且结果也应该存储为2D阵列.

编辑到目前为止我发现的最好的是scipy.linalg.solve_triangular(A, np.identity(n)).是吗?

python numpy matrix scipy matrix-inverse

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

何时使用atexit()调用注册的函数

我想知道atexit()在全局变量被销毁之前或之后是否调用了注册的函数.这是由标准或实现定义的吗?

c++ destructor atexit

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

涉及sin()的两个非常相似的函数表现出截然不同的性能 - 为什么?

考虑以下两个以两种不同方式执行相同计算的程序:

// v1.c
#include <stdio.h>
#include <math.h>
int main(void) {
   int i, j;
   int nbr_values = 8192;
   int n_iter = 100000;
   float x;
   for (j = 0; j < nbr_values; j++) {
      x = 1;
      for (i = 0; i < n_iter; i++)
         x = sin(x);
   }
   printf("%f\n", x);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

// v2.c
#include <stdio.h>
#include <math.h>
int main(void) {
   int i, j;
   int nbr_values = 8192;
   int n_iter = 100000;
   float x[nbr_values];
   for (i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c floating-point performance x86 gcc

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

Python检查fork()进程是否完成

只是想知道是否有人可以帮助我.我遇到的问题是我os.fork()获取几个信息并将它们发送到文件,但检查fork进程是否工作.

import sys
import time
import os
import re


ADDRESS  = argv[1]
sendBytes = argv[2]


proID2 = os.fork()
if proID2 == 0:
    os.system('ping -c 20 ' + ADDRESS + ' > testStuff2.txt')
    os._exit(0)

print proID2

finn = True
while finn == True:
time.sleep(1)
finn = os.path.exists("/proc/" + str(proID2))
print os.path.exists("/proc/" + str(proID2))
print 'eeup out of it ' + str(proID2)
Run Code Online (Sandbox Code Playgroud)

我认为os.path.exists()可能不是正确的使用方法.

谢谢.

python fork

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

在var初始化期间使用this.var

在研究另一个问题时,我惊讶地发现以下Java代码编译时没有错误:

public class Clazz {
    int var = this.var + 1;
}
Run Code Online (Sandbox Code Playgroud)

在我的JDK6中,var初始化为1.

上面的代码是否具有明确定义的语义,或者它的行为是否未定义?如果您说它定义明确,请引用JLS的相关部分.

java initialization undefined-behavior

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

导入tkinter与tk和tkinter导入之间的区别

我知道这是一个愚蠢的问题,但我刚刚开始学习python而且我对python没有很好的了解.我的问题是有什么区别

from Tkinter import *
Run Code Online (Sandbox Code Playgroud)

import Tkinter as tk
Run Code Online (Sandbox Code Playgroud)

?为什么我不能写

import Tkinter
Run Code Online (Sandbox Code Playgroud)

有人可以花几分钟来启发我吗?

python import tkinter

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