Tag: numpy

如何判断NumPy是否创build视图或副本?

举个最简单的例子,让我们数字化一个二维数组。 numpy.digitize需要一个一维数组: import numpy as np N = 200 A = np.random.random((N, N)) X = np.linspace(0, 1, 20) print np.digitize(A.ravel(), X).reshape((N, N)) 现在文档说 : …只有在需要的情况下才能进行复制。 在这种情况下,我怎么知道这个ravel是否“需要”呢? 一般来说 – 有一种方法可以确定一个特定的操作是否创build一个副本或一个视图?

在Python NumPy什么是维度和轴?

我正在编码与Pythons NumPy模块。 如果三维空间中的一个点的坐标描述为[1,2,1],那么不是三维,3轴,等级是3? 或者,如果这是一维,那么它不应该是点(复数),而不是点? 这里是文档: 在Num尺寸被称为轴。 轴的数量是等级。 例如,三维空间中一个点的坐标[1,2,1]是一个等级为1的数组,因为它具有一个坐标轴。 那个轴的长度是3。 资料来源: http : //wiki.scipy.org/Tentative_NumPy_Tutorial

如何将一个布尔数组转换为numpy中的索引数组

是否有一个有效的Numpy机制来检索数组中的位置的整数索引基于条件是真实的而不是布尔掩码数组? 例如: x=np.array([range(100,1,-1)]) #generate a mask to find all values that are a power of 2 mask=x&(x-1)==0 #This will tell me those values print x[mask] 在这种情况下,我想知道mask[i]==True的mask的索引号。 有没有可能产生这些循环?

将一维数组转换为numpy的二维数组

我想通过指定matrix中的列数将一维数组转换为matrix。 有些东西可以这样工作: > import numpy as np > A = np.array([1,2,3,4,5,6]) > B = vec2matrix(A,ncol=2) > B array([[1, 2], [3, 4], [5, 6], [7, 8]]) numpy是否具有像我制作的函数“vec2matrix”一样的function? (据我所知,你可以像一个matrix索引一维数组,但这不是在我有代码的选项 – 我需要进行此转换)

在numpy中添加单个元素到数组

我有一个numpy数组包含: [1, 2, 3] 我想创build一个数组,其中包含: [1, 2, 3, 1] 也就是说,我想将第一个元素添加到数组的末尾。 我已经尝试了显而易见的: np.concatenate((a, a[0])) 但是我得到一个错误,说ValueError: arrays must have same number of dimensions 我不明白这一点 – 数组都只是一维数组。

如何将numpy.linalg.norm应用到matrix的每一行?

我有一个二维matrix,我想要采取每行的规范。 但是当我直接使用numpy.linalg.norm(X) ,它就是整个matrix的规范。 我可以通过使用一个for循环来取每一行的规范,然后对每个X[i]进行规范,但是从我有30k行开始需要很长的时间。 任何build议find更快的方法? 或者是否可以将np.linalg.norm应用于matrix的每一行?

Numpy如何迭代数组的列?

假设我有和mxn数组。 我想将这个数组的每一列传递给一个函数来对整个列执行一些操作。 如何遍历数组的列? 例如,我有一个4×3的数组 1 99 2 2 14 5 3 12 7 4 43 1 for column in array: some_function(column) 在第一次迭代中列将是“1,2,3,4”,在第二次中是“99,14,12,43”,在第三次中是“2,5,7,1”。

为什么numpy.any在大型数组上如此缓慢?

我正在寻找最有效的方法来确定一个大数组是否至less包含一个非零值。 乍一看, np.any似乎是这个工作的明显工具,但对于大型数组来说似乎意想不到的缓慢。 考虑这个极端的情况: first = np.zeros(1E3,dtype=np.bool) last = np.zeros(1E3,dtype=np.bool) first[0] = True last[-1] = True # test 1 %timeit np.any(first) >>> 100000 loops, best of 3: 6.36 us per loop # test 2 %timeit np.any(last) >>> 100000 loops, best of 3: 6.95 us per loop 至lessnp.any似乎正在做一些比较明智的事情 – 如果非零值是数组中的第一个,那么在返回True之前不需要考虑其他值,所以我预计testing1会比testing2。 但是,当我们使arrays更大时会发生什么? first = np.zeros(1E9,dtype=np.bool) last = […]

numpy.fft和scipy.fftpack有什么区别?

后者只是前者的同义词,还是两种不同的FFT实现? 哪一个更好?

matplotlib – 从等高线中提取数据

我想从均匀间隔的2D数据的单个轮廓(类似图像的数据)获取数据。 基于类似问题中find的示例: 如何获得由等值线图(matplotlib)绘制的线的(x,y)值? >>> import matplotlib.pyplot as plt >>> x = [1,2,3,4] >>> y = [1,2,3,4] >>> m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]] >>> cs = plt.contour(x,y,m, [9.5]) >>> cs.collections[0].get_paths() 调用cs.collections[0].get_paths()是: [Path([[ 4. 1.625 ] [ 3.25 2. ] [ 3. 2.16666667] [ 2.16666667 3. ] [ 2. 3.25 ] [ 1.625 4. ]], None)] 根据这些图,这个结果是合理的,似乎是轮廓线的(y,x)对的集合。 除了手动循环这个返回值,提取坐标并为线组装数组,还有更好的方法从matplotlib.path对象中获取数据吗? 从matplotlib.path提取数据时是否存在缺陷? […]