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

python – 将NumPy数组转换为set需要太长时间【代码】

我正在尝试执行以下操作from numpy import * x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]]) # large nparray for item in x:set(item)与以下相比需要很长时间:x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]]) # large nparray for item in x:item.tolist()为什么将NumPy数组转换为集合而不是列表需要更长的时间?我的意思是基本上都有复杂度O(n)?解决方法:TL; DR:set()函数使用Pythons迭代协议创建...

python – 解释为什么不应该从源目录导入numpy【代码】

免责声明: 我已经检查了以下其他StackOverflow问题: > How to import numpy in python shell> How can I use numpy without installing it?> Import a module from a relative path 也许对某些人来说,这些可能会回答我的问题,但据我所知,我仍然不了解情况. 我试图导入numpy以便matplotlib可以工作,但是在numpy文件夹中执行__init__.py文件时,会显示以下错误消息:ImportError: Error importing numpy: you should not try to imp...

连续的,重叠的数组子集(NumPy,Python)【代码】

我有一个NumPy阵列[1,2,3,4,5,6,7,8,9,10,11,12,13,14],并希望有一个像[[1,2,3, 4],[2,3,4,5],[3,4,5,6],…,[11,12,13,14]]. 当然这可以通过循环大数组并将长度为4的数组添加到新数组中,但我很好奇是否有一些秘密的’魔术’Python方法正在做这个:)解决方法:最快的方法似乎是预分配数组,在本答案的底部作为选项7给出.>>> import numpy as np >>> A=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14]) >>> A array([ 1, 2, 3, 4, 5, ...

为什么在Python列表上的“for”比在Numpy数组上更快?【代码】

所以我没有讲一个很长的故事,我正在研究一些代码,我从二进制文件中读取一些数据,然后使用for循环遍历每一个点.所以我完成了代码,它的运行速度非常慢.我从大约128个数据通道循环了大约60,000个点,这需要一分钟或更长时间来处理.这比我预期的Python运行速度要慢.所以我通过使用Numpy使整个事情变得更有效率但是在试图弄清楚为什么原始进程运行得如此之慢以至于我们进行了一些类型检查并发现我在循环Numpy数组而不是Python列表.好吧没...

numpy数组数组的pythonic方法(带行索引)【代码】

我想在表中找到与特定索引相对应的值.例如,这是我的表:import numpy as np my_array = np.array([[0,1,0,1,0,1,0],[1,2,1,2,1,2,1],[4,5,4,3,3,4,5]])#--------------------------------------------------------------------- # my_array : [[0, 1, 0, 1, 0, 1, 0], # [1, 2, 1, 2, 1, 2, 1], # [4, 5, 4, 3, 3, 4, 5]])以下是一系列索引.此数组中的值是my_array的行. (列未编制索...

python – 沿动态指定的轴切割numpy数组【代码】

我想动态切片沿特定轴的numpy数组.鉴于这种:axis = 2 start = 5 end = 10我希望得到与此相同的结果:# m is some matrix m[:,:,5:10]使用这样的东西:slc = tuple(:,) * len(m.shape) slc[axis] = slice(start,end) m[slc]但是:值不能放在元组中,所以我无法弄清楚如何构建切片.解决方法:我认为一种方法是使用切片(无):>>> m = np.arange(2*3*5).reshape((2,3,5)) >>> axis, start, end = 2, 1, 3 >>> target = m[:, :, 1:3] >>>...

python – 使用最后的非零值填充1d numpy数组的零值【代码】

假设我们有一个填充了一些int值的1d numpy数组.让我们说其中一些是0. 有没有办法,使用numpy数组的幂,用找到的最后一个非零值填充所有0值? 例如:arr = np.array([1, 0, 0, 2, 0, 4, 6, 8, 0, 0, 0, 0, 2]) fill_zeros_with_last(arr) print arr[1 1 1 2 2 4 6 8 8 8 8 8 2]一种方法是使用此功能:def fill_zeros_with_last(arr):last_val = None # I don't really care about the initial valuefor i in range(arr.size):if arr[i...

python – Numpy和16位PGM【代码】

使用numpy在Python中读取16位PGM图像的有效且清晰的方法是什么? 我无法使用PIL加载16位PGM图像due to a PIL bug.我可以使用以下代码读取标题:dt = np.dtype([('type', 'a2'),('space_0', 'a1', ),('x', 'a3', ),('space_1', 'a1', ),('y', 'a3', ),('space_2', 'a1', ),('maxval', 'a5')]) header = np.fromfile( 'img.pgm', dtype=dt ) print header这打印出正确的数据:(‘P5′,”,’640′,”,’480′,”,’65535’)但我感觉这不...

python – NumPy的axis参数如何工作?【代码】

有人可以准确解释NumPy中轴参数的作用吗? 我非常困惑. 我正在尝试使用myArray.sum函数(axis = num) 起初我认为如果数组本身是3维,则axis = 0将返回三个元素,由同一位置中所有嵌套项的总和组成.如果每个维度包含五个维度,我希望axis = 1返回五个项目的结果,依此类推. 但事实并非如此,文档并没有很好地帮助我(they use a 3x3x3 array so it’s hard to tell what’s happening) 这是我做的:>>> e array([[[1, 0],[0, 0]],[[1, 1],[...

python – 在NumPy数组中查找等于零的元素索引【代码】

NumPy具有有效的函数/方法nonzero()来识别ndarray对象中的非零元素的索引.获取值为零的元素的索引的最有效方法是什么?解决方法:numpy.where()是我的最爱.>>> x = numpy.array([1,0,2,0,3,0,4,5,6,7,8]) >>> numpy.where(x == 0)[0] array([1, 3, 5])

python – numpy中的快速外张量积【代码】

我有两个numpy数组:x of shape ((d1,...,d_m)) y of shape ((e_1,...e_n)) 我想形成外张量产品,即numpy数组z of shape ((d1,...,d_m,e_1,...,e_n))这样的z[i_1,...,i_n,i_{n+1}...,i_{m+n}] == x[i_1,...i_m]*y[i_{m+1},...,i_{m+n}]我必须多次执行上面的外部乘法,所以我想尽可能加快速度.解决方法:外部的替代方法是明确扩展尺寸.对于1d阵列,这将是x[:,None]*y # y[None,:] is automatic.对于1010阵列,并推广尺寸扩展,我得到相...

python – Numpy将数组乘以矩阵(外积)【代码】

我有2个numpy形状阵列(5,1)说:A = [1,2,3,4,5]B = [2,4,2,3,6] 如何使矩阵乘以每个第i个元素与每个第j个?喜欢:..a = [1,2,3,4,5] b 2 2, 4, 6, 8,10 4 4, 8,12,16,20 2 2, 4, 6, 8,10 3 3, 6, 9,12,15 6 6,12,18,24,30不使用forloops?我可以使用重塑,缩减或乘法的任何组合吗? 现在我沿着行和沿着colums创建每个数组的a * b平铺,然后乘以元素,但在我看来必须有一个更简单的方法.解决方法:使用numpy.outer()和n...

python – 更快的替代numpy.argmax / argmin【代码】

我在Python中使用了很多argmin和argmax. 不幸的是,功能很慢. 我做了一些搜索,我能找到的最好的是: http://lemire.me/blog/archives/2008/12/17/fast-argmax-in-python/def fastest_argmax(array):array = list( array )return array.index(max(array))不幸的是,这个解决方案仍然只有np.max的一半,我想我应该能找到与np.max一样快的东西.x = np.random.randn(10) %timeit np.argmax( x ) 10000 loops, best of 3: 21.8 us per loop...

python – numpy undefined symbol:PyFPE_jbuf【代码】

我正在尝试使用One Million Song数据集,为此我必须安装python表,numpy,cython,hdf5,numexpr等等. 昨天我设法安装了我需要的所有东西,在遇到hdf5的麻烦之后,我下载了预编译的二进制包并将它们保存在我的/ bin文件夹中,以及/ lib中的相应库,之后我测试了这个python脚本:http: //labrosa.ee.columbia.edu/millionsong/sites/default/files/tutorial1.py.txt 并且工作正常,要清楚我的工作方式是首先运行脚本并开始安装所需的依赖项,但...

在Python,NumPy和R中创建相同的随机数序列【代码】

Python,NumPy和R都使用相同的算法(Mersenne Twister)来生成随机数序列.因此,从理论上讲,设置相同的种子应该在所有3中产生相同的随机数序列.事实并非如此.我认为3个实现使用不同的参数导致这种行为.R >set.seed(1) >runif(5) [1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819Python In [3]: random.seed(1)In [4]: [random.random() for x in range(5)] Out[4]: [0.13436424411240122,0.8474337369372327,0.763774618976614...