除了使用一组或语句
isinstance( x, np.float64 )或isinstance( x, np.float32 )或isinstance( np.float16 )
是否有更简洁的方法来检查变量是浮动类型?
我有一个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 示例中,当 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) 我正在使用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) 我的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) 我有一个四核i7 920 CPU.它是超线程的,因此计算机认为它有8个核心.
从我在interweb上看到的,在执行并行任务时,我应该使用物理内核的数量,而不是超线程内核的数量.
所以我做了一些时间,并且惊讶地发现在并行循环中使用8个线程比使用4个线程更快.
为什么是这样?我的示例代码太长了,无法在此处发布,但可以通过运行以下示例找到:https://github.com/jsphon/MTVectorizer
性能图表在这里:

我试图让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) 我有一个可以下载一些文件的 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 函数的行为方式,而这取决于外部因素。
我和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) 我可以创建一个字典,其中键的类型是通用的吗?
例如
void addKey<T>( object value )
{
dic.add( T, value );
}
Run Code Online (Sandbox Code Playgroud) python ×7
numpy ×4
anaconda ×2
numba ×2
scipy ×2
arrays ×1
c# ×1
choice ×1
generics ×1
matplotlib ×1
permutation ×1
pycharm ×1
python-3.x ×1
theano ×1
theano-cuda ×1
unit-testing ×1