【python – 为什么numpy.zeros会占用很少的空间】教程文章相关的互联网学习教程文章

python – RuntimeError:针对API版本a编译的模块,但此版本的numpy为9【代码】

码:import numpy as np import cv安慰:>>> runfile('/Users/isaiahnields/.spyder2/temp.py', wdir='/Users/isaiahnields/.spyder2') RuntimeError: module compiled against API version a but this version of numpy is 9 Traceback (most recent call last):File "<stdin>", line 1, in <module> File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", l...

python – numpy.where()详细,循序渐进的解释/示例【代码】

尽管阅读了the doc,this post和this other post,但我无法正确理解numpy.where(). 有人可以提供一维和二维阵列的逐步注释示例吗?解决方法:在摆弄了一段时间之后,我想出了一些事情,并将它们发布在这里,希望它能帮助别人. 直观地说,np.where就像在问“告诉我在这个数组中哪些条目满足给定条件”.>>> a = np.arange(5,10) >>> np.where(a < 8) # tell me where in a, entries are < 8 (array([0, 1, 2]),) # answer: entr...

python – 为什么numpy.zeros会占用很少的空间【代码】

我想知道为什么numpy.zeros占用这么小的空间?x = numpy.zeros(200000000)这不占用任何记忆,x = numpy.repeat(0,200000000)占用约1.5GB. numpy.zeros会创建一个空指针数组吗?如果是这样,有没有办法在cython中更改它后将指针设置为空?如果我使用:x = numpy.zeros(200000000) x[0:200000000] = 0.0内存使用率上升.有没有办法改变一个值,然后将其改回原来在python或cython中使用的格式numpy.zeros?解决方法:你在用Linux吗? Linux...

python – 一次获取NumPy数组中的几个元素的索引【代码】

有没有办法一次获取NumPy数组中的几个元素的索引? 例如.import numpy as np a = np.array([1, 2, 4]) b = np.array([1, 2, 3, 10, 4])我想找到a中每个元素的索引,即:[0,1,4]. 我发现我使用的解决方案有点冗长:import numpy as npa = np.array([1, 2, 4]) b = np.array([1, 2, 3, 10, 4])c = np.zeros_like(a) for i, aa in np.ndenumerate(a):c[i] = np.where(b==aa)[0]print('c: {0}'.format(c))输出:c: [0 1 4]解决方法:您可...

python – 删除零线2-D numpy数组【代码】

我在numpy中运行qr分解,它返回一个ndarrays列表,即Qand R:>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))R是一个二维数组,底部有零线(甚至在我的测试集中的所有例子都证明了这一点):>>> print r [[ 1.41421356 0.70710678 0.70710678][ 0. 1.22474487 1.22474487][ 0. 0. 0. ]].现在,我想将R分成两个矩阵R_~:[[ 1.41421356 0.70710678 0.70710678][ 0. ...

python – NumPy版本的“指数加权移动平均线”,相当于pandas.ewm().mean()【代码】

如何获得NumPy中的指数加权移动平均值,就像下面的pandas一样?import pandas as pd import pandas_datareader as pdr from datetime import datetime# Declare variables ibm = pdr.get_data_yahoo(symbols='IBM', start=datetime(2000, 1, 1), end=datetime(2012, 1, 1)).reset_index(drop=True)['Adj Close'] windowSize = 20# Get PANDAS exponential weighted moving average ewm_pd = pd.DataFrame(ibm).ewm(span=windowSize,...

python – 为什么numpy有许多ndarray方法的相应函数?【代码】

几个例子:numpy.sum() ndarray.sum() numpy.amax() ndarray.max() numpy.dot() ndarray.dot()……还有更多.它是支持一些遗留代码,还是有更好的理由?而且,我是根据我的代码“看起来”的方式选择的,还是两种方式中的一种比另一种更好? 我可以想象一个人可能希望numpy.dot()使用reduce(例如,reduce(numpy.dot,A,B,C,D))但我不认为这对numpy.sum这样的东西有用. ().解决方法:正如其他人所指出的那样,同名的NumPy函数和数组方法通常是...

python – 为什么用括号和逗号对索引的numpy数组的行为有所不同?【代码】

我倾向于使用括号来索引numpy数组(矩阵),但我注意到当我想切片数组(矩阵)时我必须使用逗号表示法.为什么是这样?例如,>>> x = numpy.array([[1, 2], [3, 4], [5, 6]]) >>> x array([[1, 2],[3, 4],[5, 6]]) >>> x[1][1] 4 # expected behavior >>> x[1,1] 4 # expected behavior >>> x[:][1] array([3, 4]) # huh? >>> x[:,1] array([2, 4, 6]) # expected behavior解决方法:这个:x[:, 1]表...

python – M-by-N shpae numpy.ndarray的滑动窗口【代码】

我有一个numpy形状(6,2)[[00,01],[10,11],[20,21],[30,31],[40,41],[50,51]]我需要一个步长为1的滑动窗口,窗口大小为3喜欢这个:[[00,01,10,11,20,21],[10,11,20,21,30,31],[20,21,30,31,40,41],[30,31,40,41,50,51]]我正在寻找一个numpy解决方案.如果您的解决方案可以参数化原始数组的形状以及窗口大小和步长,那就太好了. 我找到了这个相关的答案Using strides for an efficient moving average filter但是我没有看到如何指定那里...

Pickle在Python 2和3之间不兼容numpy数组【代码】

我正在尝试使用此程序加载在Python 3.2中链接here的MNIST数据集:import pickle import gzip import numpywith gzip.open('mnist.pkl.gz', 'rb') as f:l = list(pickle.load(f))print(l)不幸的是,它给了我错误:Traceback (most recent call last):File "mnist.py", line 7, in <module>train_set, valid_set, test_set = pickle.load(f) UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not ...

如何规范化python中的二维numpy数组更简洁?【代码】

给出3次3 numpy阵列a = numpy.arange(0,27,3).reshape(3,3)# array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]])为了规范化我想到的二维数组的行row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)):new_matrix[i,:] = row / row_sum必须有更好的方法,不是吗? 也许要澄清:通过归一化我的意思是,每行的总和必须是1.但我认...

python – 使用重复索引递增Numpy数组【代码】

我有一个Numpy数组和一个索引列表,其值我想增加一个.此列表可能包含重复的索引,我希望增量与每个索引的重复次数一致.没有重复,命令很简单:a=np.zeros(6).astype('int') b=[3,2,5] a[b]+=1有了重复,我想出了以下方法.b=[3,2,5,2] # indices to increment by one each replicate bbins=np.bincount(b) b.sort() # sort b because bincount is sorted incr=bbins[np.nonzero(bbins)] #...

python – 限制numpy中的线程数【代码】

似乎我的numpy库使用4个线程,设置OMP_NUM_THREADS = 1并不会阻止它. numpy.show_config()给了我这些结果:atlas_threads_info:libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']library_dirs = ['/usr/lib64/atlas']define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]language = f77include_dirs = ['/usr/include'] blas_opt_info:libraries = ['ptf77blas', 'ptcblas', 'atlas']library_dirs = ['/usr/lib64/atlas']def...

python – 是否有可能对NumPy数组进行递归计算,其中每个元素依赖于前一个元素?【代码】

T(i) = Tm(i) + (T(i-1)-Tm(i))**(-tau(i))Tm和tau是具有先前已经计算的相同长度的NumPy向量,并且期望创建新向量T.仅包括i以指示期望的元素索引. 这种情况需要for循环吗?解决方法:您可能认为这会起作用:import numpy as np n = len(Tm) t = np.empty(n)t[0] = 0 # or whatever the initial condition is t[1:] = Tm[1:] + (t[0:n-1] - Tm[1:])**(-tau[1:])但事实并非如此:你实际上不能以这种方式进行numpy的递归(因为numpy会计...

python – SciPy和NumPy之间的关系【代码】

SciPy似乎在其自己的命名空间中提供了大多数(但不是全部[1])的NumPy函数.换句话说,如果有一个名为numpy.foo的函数,几乎可以肯定是scipy.foo.大多数情况下,两者看起来完全相同,通常甚至指向同一个函数对象. 有时,他们是不同的.举一个最近出现的例子: > numpy.log10是一个返回负参数的NaN的ufunc;> scipy.log10返回负参数的复数值,但似乎不是ufunc. 关于log,log2和logn也可以这么说,但不是关于log1p [2]. 另一方面,numpy.exp和scipy...