草庐IT

numpy-ufunc

全部标签

Python:从 numpy 矩阵创建二维直方图

我是python的新手。我有一个numpy矩阵,尺寸为42x42,值在0-996范围内。我想使用这些数据创建一个2D直方图。我一直在看教程,但它们似乎都展示了如何从随机数据而不是numpy矩阵创建二维直方图。到目前为止,我已经导入了:importnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlibimportcolors我不确定这些导入是否正确,我只是想从我看到的教程中尽可能地学习。我有一个numpy矩阵M,其中包含所有值(如上所述)。最后,我希望它看起来像这样:显然,我的数据会有所不同,所以我的情节应该看起来不同。谁能帮帮我?编辑:为

python - 如何将线条绘制到 numpy 数组中?

我希望能够将线条绘制到numpy数组中以获得在线手写识别的离线功能。这意味着我根本不需要图像,但我需要numpy数组中的某些位置,给定大小的图像看起来像。我希望能够指定图像大小,然后像这样绘制笔画:importmoduleim=module.new_image(width=800,height=200)im.add_stroke(from={'x':123,'y':2},to={'x':42,'y':3})im.add_stroke(from={'x':4,'y':3},to={'x':2,'y':1})features=im.get(x_min=12,x_max=15,y_min=0

python - macOS Python 和 numpy 在训练神经网络方面比 Julia 更快

我尝试移植NN代码here给Julia,希望能提高网络训练的速度。在我的桌面上,事实证明是这样。然而,在我的MacBook上,Python+numpy远远击败了Julia。使用相同的参数进行训练,Python的速度是Julia的两倍多(4.4svs10.6sforoneepoch)。考虑到Julia在我的桌面上比Python快(大约2秒),似乎Python/numpy在mac上使用了一些Julia没有使用的资源。即使并行化代码也只能让我下降到~6.6s(尽管这可能是因为我在编写并行代码方面没有那么丰富的经验)。我认为问题可能是Julia的BLAS比mac中本地使用的vecLib库慢,但

python - 赋值问题,一个 NumPy 函数?

自assignmentproblem可以以单个矩阵的形式构成,我想知道NumPy是否有解决这种矩阵的功能。到目前为止我还没有找到。也许你们中有人知道NumPy/SciPy是否有赋值-问题-求解函数?编辑:与此同时,我在http://software.clapper.org/munkres/找到了一个Python(不是NumPy/SciPy)实现。.我仍然认为NumPy/SciPy实现会更快,对吧? 最佳答案 在sklearn/utils/linear_assignment_.py下的scikit-learn中现在有一个munkres

python - 从现有的 2d 数组在 numpy 中构造 3d 数组

在为NumPy计算准备数据期间。我很好奇构造方法:myarray.shape=>(2,18,18)来自:d1.shape=>(18,18)d2.shape=>(18,18)我尝试使用NumPy命令:hstack([[d1],[d2]])但它看起来行不通! 最佳答案 只是做d3=array([d1,d2])似乎对我有用:>>>fromnumpyimportarray>>>#...created1andd2...>>>d1.shape(18,18)>>>d2.shape(18,18)>>>d3=array([d1,d2])>>>d3.s

python - 如何使用 x 和 y 坐标循环遍历 2D numpy 数组而不会出现越界错误?

我尝试了以下方法:importnumpyasnpa=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])printarows=a.shape[0]cols=a.shape[1]printrowsprintcolsforxinrange(0,cols-1):foryinrange(0,rows-1):printa[x,y]这只会打印数字1-6。我也试过只从范围内的行或列中减去1,但这要么导致越界错误,要么导致所有数字都打印不出来。 最佳答案 您可以通过以下方式获得更漂亮的代码:foriy,ixi

python - 在 numpy 中按值拆分数组

我有一个包含格式数据的文件:0.0x10.1x20.2x30.0x40.1x50.2x60.3x7...数据由多个数据集组成,每个数据集的第一列都从0开始(因此x1、x2、x3是一组,x4、x5、x6、x7是另一组)。我需要分别绘制每个数据集,所以我需要以某种方式拆分数据。实现这一目标的最简单方法是什么?我意识到我可以逐行查看数据并在每次在第一列中遇到0时拆分数据,但这似乎效率很低。 最佳答案 我其实很喜欢Benjamin的回答,一个稍微简短的解决方案是:B=np.split(A,np.where(A[:,0]==0.)[0][1:

python - 在 Numpy(或 Scipy)中计算斜率

我正在尝试找到使用Numpy和Scipy计算斜率的最快和最有效的方法。我有一组包含三个Y变量和一个X变量的数据,我需要计算它们各自的斜率。例如,我可以轻松地一次一行地执行此操作,如下所示,但我希望有一种更有效的方法来执行此操作。我也不认为linregress是最好的方法,因为我的结果中不需要任何辅助变量,如截距、标准错误等。任何帮助是极大的赞赏。importnumpyasnpfromscipyimportstatsY=[[2.62710000e+113.14454000e+113.63609000e+114.03196000e+114.21725000e+112.86698000e+1

python - 如何在 numpy 数组上进行条件数组运算?

我试图更好地掌握numpy数组,所以我有一个关于它们的示例问题:假设我有一个名为a的numpy数组。我想对a执行一个操作,该操作会递增其中所有小于0的值,并保留其余值。例如,如果我有:a=np.array([1,2,3,-1,-2,-3])我想返回:([1,2,3,0,-1,-2])最紧凑的语法是什么?谢谢! 最佳答案 In[45]:a=np.array([1,2,3,-1,-2,-3])In[46]:a[a 关于python-如何在numpy数组上进行条件数组运算?,我们在StackO

python - 将函数应用于 3D numpy 数组的每个 2D 切片的有效方法

我想对3D数组的每个2D切片应用一个接受2D数组(并返回相同形状之一)的函数。这样做的有效方法是什么?numpy.fromiter返回一维数组,numpy.fromfunction需要分别应用于每个坐标。目前我正在做foo=np.array([func(arg,bar2D)forbar2Dinbar3D])这给了我想要的,但列表理解速度很慢。此外,func是具有特定边界条件的一维导数。numpy.gradient似乎只对数组的N维进行N维导数,但也许有另一个例程可以为我完成所有事情?编辑:列表理解有效,但我正在寻找一种更快的方法。bar3D可以很大,最大可达(500,500,1000)