【python – 强制Numpy数组中的元素在指定范围内】教程文章相关的互联网学习教程文章

python – 将两个不同形状的numpy数组合并为一个数组【代码】

我有两个numpy数组a和b分别为53和82.我想将它们合并为一个数组,因为我想使用53 82 = 135长度的数组,比如把它称为c用于绘图. 我试过了c = a+b 但我得到的是ValueError:形状不匹配:对象无法广播到单个形状 这可能吗?解决方法:您需要使用numpy.concatenate而不是数组添加c = numpy.concatenate((a, b))履行import numpy as np a = np.arange(53) b = np.arange(82) c = np.concatenate((a, b))产量c.shape (135, )

在Python与Matlab中减去3D numpy数组【代码】

我有两个3D numpy数组,我想找出它们之间的区别.>>>A.dtype dtype('uint32') >>>B.dtype dtype('uint32') >>>A.shape (86, 50, 108) >>>B.shape (86, 50, 108) >>>A.min() 0 >>>B.min() 0 >>>A.max() 89478487 >>>B.max() 89115767现在,如果我们做A – B.>>> diff = abs( A-B ); >>> diff.min() 0 >>> diff.max() 4294967292考虑到两个矩阵的最小值和最大值,我们不能将4294967292作为差矩阵的最大值.我也在Matlab中做了类似的...

python – 在numpy数组中查找相同的行和列【代码】

我有一个nxn元素的bolean数组,我想检查是否有任何行与另一行相同.如果有任何相同的行,我想检查相应的列是否也相同. 这是一个例子:A=np.array([[0, 1, 0, 0, 0, 1],[0, 0, 0, 1, 0, 1],[0, 1, 0, 0, 0, 1],[1, 0, 1, 0, 1, 1],[1, 1, 1, 0, 0, 0],[0, 1, 0, 1, 0, 1]])我希望程序找到第一行和第三行是相同的,然后检查第一列和第三列是否也相同;在这种情况下,他们是.解决方法:你可以使用np.array_equal():for i in range(len(A)): ...

python – 模拟:assert_called_once_with一个numpy数组作为参数【代码】

我在类中有一个方法,我想使用Python 3.4使用unittest框架进行测试.我更喜欢使用Mock作为类的对象来测试,正如Daniel Arbuckle的Learning Python Testing中所解释的那样. 问题 这就是我要做的:class Test_set_initial_clustering_rand(TestCase):def setUp(self):self.sut = Mock()def test_gw_01(self):self.sut.seed = 1ClustererKmeans.set_initial_clustering_rand(self.sut, N_clusters=1, N_persons=6)e = np.array([0, 0, 0,...

python – 使用包含超出边界值的另一个数组索引numpy数组【代码】

给定以下数据数组:d=np.array([10,11,12,13,14]) 和另一个索引数组:i=np.array([0, 2, 3, 6])使用i(d [i])索引d的好方法是什么,以便代替6的索引越界错误,我会得到:np.array([10, 12, 13])解决方法:也许用i [i< d.size]]得到小于d长度的元素: print(d[i[i < d.size]]) [10 12 13]

python – 计算每个numpy数组行的熵的最快方法?【代码】

我有一个大小为MxN的数组,我喜欢计算每一行的熵值.最快的方法是什么?解决方法:scipy.special.entr为数组中的每个元素计算-x * log(x).调用之后,您可以对行进行求和. 这是一个例子.首先,创建一个正数值的数组p,其行总和为1:In [23]: np.random.seed(123)In [24]: x = np.random.rand(3, 10)In [25]: p = x/x.sum(axis=1, keepdims=True)In [26]: p Out[26]: array([[ 0.12798052, 0.05257987, 0.04168536, 0.1013075 , 0.132...

python – 使用多个自定义索引范围构建numpy数组,而不显式循环【代码】

在Numpy中,是否有一种pythonic方法来创建array3,其中自定义范围来自array1和array2而没有循环?迭代范围的直接解决方案有效,但由于我的数组遇到了数百万个项目,我正在寻找更有效的解决方案(也可能是语法糖). 例如,array1 = np.array([10, 65, 200]) array2 = np.array([14, 70, 204]) array3 = np.concatenate([np.arange(array1[i], array2[i]) for i innp.arange(0,len(array1))])print array3结果:[10,11,12,13,65,66,67,68,6...

python – 取消广播Numpy数组【代码】

在一个大的代码库中,我使用np.broadcast_to来广播数组(这里只使用简单的例子):In [1]: x = np.array([1,2,3])In [2]: y = np.broadcast_to(x, (2,1,3))In [3]: y.shape Out[3]: (2, 1, 3)在代码的其他地方,我使用的第三方函数可以在Numpy数组上以矢量化方式运行,但这不是ufunc.这些函数不理解广播,这意味着在像y这样的数组上调用这样的函数是低效的.诸如Numpy的矢量化之类的解决方案也不好,因为虽然他们理解广播,但他们在数组元素...

python – 将多个值添加到一个numpy数组索引【代码】

简单版本:如果我这样做:import numpy as np a = np.zeros(2) a[[1, 1]] += np.array([1, 1])我得到[0,1]作为输出.但我想[0,2].这可能是某种方式,使用隐式numpy循环而不是自己循环它? 什么 – 我实际需要做的版本: 我有一个结构化数组,包含索引,值和一些布尔值.我想基于布尔值在那些索引处对这些值求和.显然,这可以通过一个简单的循环完成,但似乎应该可以通过巧妙的numpy索引(如上所述). 例如,我有一个包含5个元素的数组,我想从...

python – 替换numpy数组中大于限制的值【代码】

我有一个数组n x m,每列的最大值.除了检查每个元素之外,更换大于最大值的值的最佳方法是什么? 例如:def check_limits(bad_array, maxs):good_array = np.copy(bad_array)for i_line in xrange(bad_array.shape[0]):for i_column in xrange(bad_array.shape[1]):if good_array[i_line][i_column] >= maxs[i_column]:good_array[i_line][i_column] = maxs[i_column] - 1return good_array无论如何要以更简洁的方式更快地完成这项工...

python – 从多维numpy数组中选择【代码】

我有一个多维数组a形状(nt,nz,ny,nx).尺寸是时间,z,y,x.对于x和y的每一次,我在具有形状(nt,ny,nx)的新索引数组J中选择了适当的z. J包含我想要选择的高度维度的索引.使用Python,我可以在循环中执行此操作:b=J.copy() for t in range(nt):for y in range(ny):for x in range(nx):z=J[t,y,x]b[t,y,x]=a[t,z,y,x]但我想更快地完成这项工作,没有循环.这可能是微不足道的,但我无法理解它.任何人?解决方法:您可以将numpy.indices()与高级...

numpy数组的python对象【代码】

从什么时候开始numpy允许你定义一个python对象数组? Objects array with numpy. 这些数组和python列表之间有什么根本区别吗? 这些数组之间有什么区别,比如说python元组? 我想在python对象数组上使用几个方便的numpy函数,即掩码和元素操作,我想在我的分析中使用它们,但是我担心使用一个我不能的功能找到任何地方的文档.这个’object’数据类型有没有任何文档? 是否添加了此功能以准备将numpy合并到标准库中?解决方法:“基本”区...

python – NumPy数组索引【代码】

关于索引数组以获取其值的子集的简单问题.假设我有一个在一个空间中保存年龄的重新排列,在另一个空间中保存相应的值.我也有一个数组,这是我想要的年龄子集.这就是我的意思:ages = np.arange(100) values = np.random.uniform(low=0, high= 1, size = ages.shape) data = np.core.rec.fromarrays([ages, values], names='ages,values') desired_ages = np.array([1,4, 16, 29, 80])我想要做的是这样的事情:data.values[data.ages=...

python – 使用pyglet显示numpy数组不正确【代码】

我在使用pyglet显示numpy数组时遇到问题.我找到了一个与我用过的非常相似的话题(how to display a numpy array with pyglet?).我想以灰度显示数组,但是pyglet用颜色显示它,请参见图像:http://i.stack.imgur.com/pL6Yr.jpgdef create(self, X,Y):IMG = random((X,Y)) * 255self.IMG = dstack((IMG,IMG,IMG))return self.IMGdef image(self):self.img_data = self.create(X,Y).data.__str__()self.image = pyglet.image.ImageData(X...

python – 带有NumPy数组操作数的负指数【代码】

Python中的标准电源操作(**)不适用于负电源!当然,我可以用其他方式编写公式,除以正和幂.但是,我正在检查优化常规结果,有时功率是负的,有时它是正的.这里再一次if语句可以做,但我想知道是否有一个workarouns和一个允许负曝光的Python库.感谢致敬.解决方法:你使用的是哪个版本的python?在Python 2.6,2.7和3.2中完美适用于我:>>> 3**-3 == 1.0/3**3 True和numpy 1.6.1:>>> import numpy as np >>> arr = np.array([1,2,3,4,5], dt...

元素 - 相关标签