小编Gin*_*ger的帖子

如何检查一个数字是np.float64还是np.float32或np.float16?

除了使用一组或语句

isinstance( x, np.float64 )isinstance( x, np.float32 )isinstance( np.float16 )

是否有更简洁的方法来检查变量是浮动类型?

python numpy

9
推荐指数
2
解决办法
3082
查看次数

这是什么类型的Python数组?它是否已经存在于Python中?

我有一个numpy数组:

m = array([[4, 0, 9, 0],
          [0, 7, 0, 0],
          [0, 0, 0, 0],
          [0, 0, 0, 5]])
Run Code Online (Sandbox Code Playgroud)

m列的4列标记为:

c = array([ 10, 20, 30, 40])
Run Code Online (Sandbox Code Playgroud)

我希望能够切割一个对象o:

o.vals[0,:] = array([4, 9])
o.vals[1,:] = array([7,])
o.vals[2,:] = array([])
o.vals[3,:] = array([5])
o.cols[0,:] = array([10, 30] )# the non-zero column labels from row 0
o.cols[1,:] = array([20,])
o.cols[2,:] = array([])
o.cols[3,:] = array([40])
Run Code Online (Sandbox Code Playgroud)

是否有现成的Python对象可以让我这样做?

我看过Scipy Sparse Matrices,但它并不是我想要的.

2015年8月17日的最新消息:我已经有了一些想法,想出了这个,这与我上周描述的几乎相同:

python arrays numpy scipy sparse-matrix

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

super 应该始终位于 __init__ 方法的顶部,还是可以位于底部?

在大多数 Python 示例中,当 super 用于调用父类的构造函数时,它出现在顶部。

将它放在init方法的底部是不好的形式吗?

在下面的示例中,super 位于 A 的构造函数的底部,但位于 B 的构造函数的顶部。

class A:
    def __init__(self):
        # Do some stuff
        b = result_of_complex_operation()
        super(A, self).__init__(b)

class B:
    def __init__(self):
        super(A, self).__init__(b)
        # Do some stuff
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
2
解决办法
1777
查看次数

没有替换概率的抽样

我正在使用np.random.choice进行采样而无需替换.

我希望以下代码选择0 50%的时间,1 30%的时间和2 20%的时间.

import numpy as np

draws = []
for _ in range(10000):
    draw = np.random.choice(3, size=2, replace=False, p=[0.5, 0.3, 0.2])
    draws.append(draw)

result = np.r_[draws]
Run Code Online (Sandbox Code Playgroud)

如何正确选择参数以np.random.choice获得我想要的结果?

我想要的数字代表事件在第一或第二位置被抽出的概率.

print(np.any(result==0, axis=1).mean()) # 0.83, want 0.8
print(np.any(result==1, axis=1).mean()) # 0.68, want 0.7
print(np.any(result==2, axis=1).mean()) # 0.47, want 0.5
Run Code Online (Sandbox Code Playgroud)

python numpy permutation choice scipy

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

破碎的Matplotlib安装,Conda更新无法正常工作

我的matplotlib安装似乎被打破了.

我尝试使用conda更新matplotlib,但问题没有消失.我还能尝试什么?

我尝试导入matplotlib.plt时得到的错误如下

In [2]: import matplotlib.pyplot as plt
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-eff513f636fd> in <module>()
----> 1 import matplotlib.pyplot as plt

C:\Anaconda\envs\py33\lib\site-packages\matplotlib\pyplot.py in <module>()
     24 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike
     25 from matplotlib import docstring
---> 26 from matplotlib.figure import Figure, figaspect
     27 from matplotlib.backend_bases import FigureCanvasBase
     28 from matplotlib.image import imread as _imread

C:\Anaconda\envs\py33\lib\site-packages\matplotlib\figure.py in <module>()
     22 from matplotlib import __version__ as _mpl_version
     23
---> 24 import matplotlib.artist as martist
     25 from matplotlib.artist …
Run Code Online (Sandbox Code Playgroud)

matplotlib python-3.x anaconda

6
推荐指数
1
解决办法
6711
查看次数

为什么在4核超线程CPU上使用8个线程比4个线程更快?

我有一个四核i7 920 CPU.它是超线程的,因此计算机认为它有8个核心.

从我在interweb上看到的,在执行并行任务时,我应该使用物理内核的数量,而不是超线程内核的数量.

所以我做了一些时间,并且惊讶地发现在并行循环中使用8个线程比使用4个线程更快.

为什么是这样?我的示例代码太长了,无法在此处发布,但可以通过运行以下示例找到:https://github.com/jsphon/MTVectorizer

性能图表在这里:

在此输入图像描述

python parallel-processing numpy numba

6
推荐指数
1
解决办法
1183
查看次数

Theano使用命令行中的gpu,但不使用PyCharm

我试图让Theano在我的Linux机器上使用gpu.它适用于命令行,但不适用于Pycharm.两者都在我的机器的同一文件夹中使用Python 3.5.

我正在测试这个脚本:

from theano import function, config, shared, tensor
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], tensor.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, tensor.Elemwise) and
              ('Gpu' not …
Run Code Online (Sandbox Code Playgroud)

pycharm theano theano-cuda

6
推荐指数
0
解决办法
350
查看次数

如何对下载功能进行单元测试?

我有一个可以下载一些文件的 python 函数。

例如

def downloader():
    file_list=['fileone.htm','filetwo.htm','filethree.htm']
    for f in file_list:
        (filename,headers) = urllib.urlretrieve(f,'c:\\temp\\'+f)
Run Code Online (Sandbox Code Playgroud)

对功能进行单元测试的正确方法是什么?它是否有效取决于 urlretrieve 函数的行为方式,而这取决于外部因素。

python unit-testing

5
推荐指数
1
解决办法
3095
查看次数

Numba错误:NotImplementedError:无法从{i64,i8*}*强制转换为{i64,i8*}

我和numba有一个奇怪的错误.

我正在使用Anacondas,Python 3.3

我试图自动执行的功能是

@autojit
def _generate_broadcasted_forecasts(self):
    x = np.array( self.residuals[1:] , dtype=float)
    y = np.array( self.sigma[1:-1] , dtype=float)
    errors = x/y
    self.errors = errors   
Run Code Online (Sandbox Code Playgroud)

数据是:

self.residuals
Out[1]: 
array([ 0.00027274,  0.06000376,  0.01042219,  0.02850773, -0.01411178,
       -0.01929838,  0.00385101, -0.01630044,  0.03715821,  0.02258934,
        0.05662874, -0.02359702, -0.01823098, -0.03092986,  0.02994069,
        0.01090546, -0.02475619, -0.01020354, -0.00332659, -0.01734819,
        0.01957363, -0.02706434,  0.01215692, -0.05122325, -0.02016905,
       -0.0472204 ,  0.0183388 ,  0.00319104, -0.04198954,  0.00586023,
       -0.03320624,  0.0061127 , -0.04101338,  0.07630624, -0.04561496,
       -0.01602609,  0.03317164, -0.02177255, -0.001892  , -0.01752149,
       -0.01062089, -0.00036998, -0.02321696, -0.01139503, -0.04052122,
        0.01033072, -0.04154074, …
Run Code Online (Sandbox Code Playgroud)

python anaconda numba

5
推荐指数
1
解决办法
970
查看次数

我可以使用通用键作为键吗?

我可以创建一个字典,其中键的类型是通用的吗?

例如

void addKey<T>( object value )
{
    dic.add( T, value );
}
Run Code Online (Sandbox Code Playgroud)

c# generics

5
推荐指数
1
解决办法
107
查看次数