草庐IT

numpy-ufunc

全部标签

python - numpy 中的 "Got 1 columns instead of ..."错误

我正在编写以下代码,用于对训练集和测试集执行随机森林分类;fromsklearn.ensembleimportRandomForestClassifierfromnumpyimportgenfromtxt,savetxtdefmain():dataset=genfromtxt(open('filepath','r'),delimiter='',dtype='f8')target=[x[0]forxindataset]train=[x[1:]forxindataset]test=genfromtxt(open('filepath','r'),delimiter='',dtype='f8'

python - 为什么双切片 numpy 数组的赋值不起作用?

为什么下面几行没有按我预期的那样工作?importnumpyasnpa=np.array([0,1,2,1,1])a[a==1][1:]=3printa>>>[01211]#Iwouldexpect[01233]这是一个“错误”还是有其他推荐的方法?另一方面,以下工作:a[a==1]=3printa>>>[03233]干杯,菲利普 最佳答案 这与花式索引的工作原理有关。有详尽的解释here.这样做是为了允许使用花哨的索引进行就地修改(即a[x>3]*=2)。这样做的结果是您不能像您发现的那样分配给双索引。花式索引总是返回副本而不是V

python - 我在切片范围内使用什么值来包含 numpy 数组中的最后一个值?

想象一些numpy数组,例如x=np.linspace(1,10)。x[i:j]让我可以查看范围[i,j)的x。我喜欢我还可以执行x[i:-k],它排除了最后的k元素。但是,为了包含最后一个元素,我需要执行x[i:]。我的问题是:例如,如果我需要遍历k,我该如何组合这两种表示法。说我想这样做:l=list()forkin[5,4,3,2,1]:l.append(x[:-k])l.append(x[:])让我恼火的是最后一行。在这个简单的例子中,当然它并没有太大的区别,但有时这会变得更加烦人。我想念的是更像DRY的东西。以下片段当然不会产生预期的结果,但代表了我寻求的代码风格:l=lis

python - 如何检查我安装的 numpy 是否使用 SSE/SSE2 指令集编译?

如何检查我安装的numpy版本是否使用SSE/SSE2指令集编译?我知道numpy的某些部分正在使用BLAS,如何也检查BLAS? 最佳答案 我认为一种方法是在linux下对numpy.so文件使用objdump,对于特定于sse的指令使用grep。对于SSE3(http://en.wikipedia.org/wiki/SSE3):objdump-d/usr/lib/pyshared/python2.7/numpy/core/*.so|grep-iMOVDDUP对于SSE2(http://fr.wikipedia.org/wiki/

python - fast python numpy 哪里有功能?

我在几个for循环中多次使用numpy的where函数,但它变得太慢了。有什么方法可以更快地执行此功能?我读到你应该尝试执行内联for循环,并在for循环之前为函数创建局部变量,但似乎没有什么可以提高速度(len(UNIQ_IDS)~800。emiss_data和obj_data是形状为(2600,5200)的numpyndarray。我使用importprofile来处理瓶颈在哪里,for循环中的where是一个很大的瓶颈。importnumpyasnpmax=np.maxwhere=np.whereMAX_EMISS=[max(emiss_data[where(obj_data==

python - Numpy - 从数组中切片二维行或列向量

我正在尝试找到一个巧妙的小技巧,用于从二维数组中切割行/列并获得(col_sizex1)或(1xrow_size).有没有比在每次切片后使用numpy.reshape()更简单的方法?干杯,斯蒂芬 最佳答案 您可以在一次操作中切片并插入新轴。例如,这是一个二维数组:>>>a=np.arange(1,7).reshape(2,3)>>>aarray([[1,2,3],[4,5,6]])要切出单个列(返回形状为(2,1)的数组),以None作为第三维进行切片:>>>a[:,1,None]array([[2],[5]])要切出单个行(返回

python - 如何忽略 numpy 数组中的 NaN 数据点并在 Python 中生成规范化数据?

假设我有一个带有一些float('nan')的numpy数组,我现在不想估算这些数据,我想首先对这些数据进行归一化并将NaN数据保留在原始空间,有什么办法吗我能做到吗?之前我在sklearn.Preprocessing中使用了normalize函数,但该函数似乎不能将任何包含NaN的数组作为输入。 最佳答案 您可以使用numpy.ma.array函数屏蔽您的数组,然后应用任何numpy操作:importnumpyasnpa=np.random.rand(10)#Generaterandomdata.a=np.where(a>0.8,

python - 对象跟踪 : MATLAB vs. Python Numpy

我很快将开始最后一年的工程项目,包括实时跟踪在2D表面上移动的物体。这些对象将由我的算法使用featureextraction注册.我正在尝试做一些研究来决定我应该使用MATLAB还是使用PythonNumpy(NumericalPython)。我正在考虑的一些因素:1.)经验我在这两个方面都有相当的经验,但在使用Numpy进行图像处理方面可能更有经验。但是,我一直发现MATLAB非常直观且易于上手。2.)实时能力非常重要的一点是我的选择能够支持实时采集外接摄像头的视频数据。我找到了MATLAB的链接展示如何去做。我确信对于Python也是可能的,或许使用OpenCV库?3.)性能我听

python - 打乱一个 numpy 数组

我有一个二维numpy数组,我想将其打乱。最好的方法是将其reshape为1-d、洗牌并再次reshape为2-d,还是可以洗牌而不reshape?仅使用random.shuffle不会产生预期的结果,而numpy.random.shuffle只会随机播放行:importrandomimportnumpyasnpa=np.arange(9).reshape((3,3))random.shuffle(a)printa[[012][345][345]]a=np.arange(9).reshape((3,3))np.random.shuffle(a)printa[[678][345][012

python - NumPy pcolormesh : TypeError: Dimensions of C are incompatible with X and/or Y

这段代码:xedges=np.arange(self.min_spread-0.5,self.max_spread+1.5)yedges=np.arange(self.min_span-0.5,self.max_span+1.5)h,xe,ye=np.histogram2d(self.spread_values,self.span_values,[xedges,yedges])fig=plt.figure(figsize=(7,3))ax=fig.add_subplot(111)x,y=np.meshgrid(xedges,yedges)ax.pcolormesh(x,y,h)给出这个