Questions tagged «numpy»

NumPy是Python编程语言的科学和数字计算扩展。


5
x [x <2] = 0在Python中是什么意思?
我遇到了一些代码,类似于 x[x&lt;2]=0 玩弄各种变化,我仍然坚持使用此语法。 例子: &gt;&gt;&gt; x = [1,2,3,4,5] &gt;&gt;&gt; x[x&lt;2] 1 &gt;&gt;&gt; x[x&lt;3] 1 &gt;&gt;&gt; x[x&gt;2] 2 &gt;&gt;&gt; x[x&lt;2]=0 &gt;&gt;&gt; x [0, 2, 3, 4, 5]

12
numpy:找到范围内元素的索引
例如,我有一个数字数组 a = np.array([1, 3, 5, 6, 9, 10, 14, 15, 56]) 我想找到特定范围内元素的所有索引。例如,如果范围是(6,10),则答案应该是(3,4,5)。有内置的功能可以做到这一点吗?
85 python  numpy 


8
如何为Numpy数组添加新尺寸?
我从一个图像的numpy数组开始。 In[1]:img = cv2.imread('test.jpg') 形状是您可能期望的640x480 RGB图像。 In[2]:img.shape Out[2]: (480, 640, 3) 但是,我拥有的这张图像是一帧视频,长度为100帧。理想情况下,我希望有一个数组,其中包含该视频中的所有数据,从而img.shape返回(480, 640, 3, 100)。 将下一帧(即另一组图像数据,另一个480 x 640 x 3数组)添加到我的初始数组的最佳方法是什么?
85 python  arrays  opencv  numpy 

8
在numpy数组中查找模式的最有效方法
我有一个包含整数(正数或负数)的2D数组。每一行代表特定空间站点随时间的值,而每一列代表给定时间内各种空间站点的值。 因此,如果数组是这样的: 1 3 4 2 2 7 5 2 2 1 4 1 3 3 2 2 1 1 结果应该是 1 3 2 2 2 1 注意,当模式有多个值时,可以将任何一个(随机选择)设置为模式。 我可以一次遍历找到模式的列,但我希望numpy可能有一些内置函数来做到这一点。或者,如果有一个技巧可以有效地发现而不循环。
84 python  numpy  2d  mode 

11
交织两个numpy数组
假设给出以下数组: a = array([1,3,5]) b = array([2,4,6]) 一个人如何有效地交织它们,以便获得这样的第三个数组 c = array([1,2,3,4,5,6]) 可以假设length(a)==length(b)。
84 python  arrays  numpy 

7
使用numpy在Python中使用TIFF(导入,导出)
我需要一个python方法来打开TIFF图像并将其导入到numpy数组中,以便我可以分析和修改像素数据,然后再次将它们另存为TIFF。(它们基本上是灰度的光强度图,代表每个像素的相应值) 我找不到有关TIFF的PIL方法的任何文档。我试图弄清楚,但仅收到“错误模式”或“不支持的文件类型”错误。 我需要在这里使用什么?

7
两个熊猫列的字符串串联
我有以下内容DataFrame: from pandas import * df = DataFrame({'foo':['a','b','c'], 'bar':[1, 2, 3]}) 看起来像这样: bar foo 0 1 a 1 2 b 2 3 c 现在我想拥有类似的东西: bar 0 1 is a 1 2 is b 2 3 is c 我该如何实现?我尝试了以下方法: df['foo'] = '%s is %s' % (df['bar'], df['foo']) 但这给我一个错误的结果: &gt;&gt;&gt;print df.ix[0] bar …


8
在numpy数组中移动元素
几年前从这个问题开始,在numpy中是否有规范的“移位”功能?我从文档中看不到任何东西。 这是我正在寻找的简单版本: def shift(xs, n): if n &gt;= 0: return np.r_[np.full(n, np.nan), xs[:-n]] else: return np.r_[xs[-n:], np.full(-n, np.nan)] 使用它就像: In [76]: xs Out[76]: array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]) In [77]: shift(xs, 3) Out[77]: array([ nan, nan, nan, 0., 1., 2., 3., 4., 5., 6.]) …
83 python  numpy 

3
numpy.exp()到底是做什么的?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我对np.exp()的实际用途感到非常困惑。在文档中它说:“计算输入数组中所有元素的指数。” 我对这到底意味着什么感到困惑。有人能给我更多信息吗?
83 python  numpy  statistics  exp 

2
numpy如何比我的Fortran例程快得多?
我从仿真中得到了一个代表温度分布的512 ^ 3数组(用Fortran编写)。该阵列存储在大小约为1 / 2G的二进制文件中。我需要知道此数组的最小值,最大值和均值,并且由于不久以后无论如何我都需要了解Fortran代码,因此我决定尝试一下,并提出了以下非常简单的例程。 integer gridsize,unit,j real mini,maxi double precision mean gridsize=512 unit=40 open(unit=unit,file='T.out',status='old',access='stream',&amp; form='unformatted',action='read') read(unit=unit) tmp mini=tmp maxi=tmp mean=tmp do j=2,gridsize**3 read(unit=unit) tmp if(tmp&gt;maxi)then maxi=tmp elseif(tmp&lt;mini)then mini=tmp end if mean=mean+tmp end do mean=mean/gridsize**3 close(unit=unit) 我使用的计算机上的每个文件大约需要25秒。那让我感到震惊,因为它相当长,所以我继续使用Python进行了以下操作: import numpy mmap=numpy.memmap('T.out',dtype='float32',mode='r',offset=4,\ shape=(512,512,512),order='F') mini=numpy.amin(mmap) maxi=numpy.amax(mmap) mean=numpy.mean(mmap) 现在,我希望这当然会更快,但是我真的很震惊。在相同条件下,它花费不到一秒钟的时间。平均值偏离了我的Fortran例程找到的平均值(我也使用128位浮点数运行,因此我以某种方式信任它),但仅在第7个有效位数左右。 numpy怎么这么快?我的意思是,您必须查看数组的每个条目才能找到这些值,对吗?我是否在Fortran例程中做了一些非常愚蠢的事情,以使其花费了更长的时间? 编辑: 要回答评论中的问题: 是的,我也使用32位和64位浮点数运行了Fortran例程,但它对性能没有影响。 我使用iso_fortran_env了提供128位浮点数的代码。 …


10
如何使scipy.interpolate给出超出输入范围的推断结果?
我正在尝试移植一个使用手推插值器(由数学家colleage开发)的程序,以使用scipy提供的插值器。我想使用或包装scipy插值器,以使其行为与旧的插值器尽可能接近。 这两个函数之间的关键区别在于,在我们的原始插值器中-如果输入值高于或低于输入范围,则我们的原始插值器将推断结果。如果您使用scipy插值器尝试此操作,则会引发一个ValueError。以该程序为例: import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x) 有没有一种明智的方法可以使最后一行不会发生崩溃,而是简单地进行线性外推,将由前两个点定义的渐变继续到无穷大。 请注意,在实际软件中,我实际上并没有使用exp函数-此处仅用于说明!
82 python  math  numpy  scipy 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.