问题标签 [numpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
36886 浏览

python - NumPy,PIL 添加图像

我正在尝试使用 NumPy 和 PIL 将两个图像添加在一起。我在MATLAB中执行此操作的方式类似于:

我得到这样的东西:

替代文字 http://www.deadlink.cc/matlab.jpg

使用合成程序并添加图像,MATLAB 结果似乎是正确的。

在 Python 中,我试图做同样的事情:

我得到这样的东西:

替代文字 http://www.deadlink.cc/python.jpg

为什么我得到所有这些时髦的颜色?我也尝试过使用ImageMath.eval("a+b", a=im1, b=im2),但我收到有关 RGB 不支持的错误。

我还看到有一个Image.blend()但需要 alpha。

实现我想要的东西的最佳方法是什么?

源图像(图像已被删除):

替代文字 http://www.deadlink.cc/_1.jpg 替代文字 http://www.deadlink.cc/_2.jpg

嗯,好的,我使用添加图像图标添加了源图像,它们在我编辑帖子时出现,但由于某种原因,图像没有出现在帖子中。

(图片已被删除)2013 05 09

0 投票
11 回答
71807 浏览

python - 用于确定两个数字在舍入到 n 个有效十进制数字时是否几乎相等的函数

我被要求测试第 3 方提供的库。已知该库精确到n 个有效数字。任何不太重要的错误都可以安全地忽略。我想写一个函数来帮助我比较结果:

此函数的目的是确定两个浮点数(a 和 b)是否近似相等。如果 a==b(完全匹配)或者如果 a 和 b 在以十进制形式写入时舍入到sigfig有效数字时具有相同的值,则该函数将返回 True。

任何人都可以提出一个好的实施方案吗?我写了一个迷你单元测试。除非您可以在我的测试中看到错误,否则一个好的实现应该通过以下内容:

补充笔记:

  1. 值 a 和 b 可能是 int、float 或 numpy.float64 类型。值 a 和 b 将始终属于同一类型。转换不会在函数中引入额外的错误,这一点至关重要。
  2. 让我们保留这个数字,因此转换为字符串或使用非数学技巧的函数并不理想。该程序将由数学家审核,他希望能够证明该函数完成了它应该做的事情。
  3. 速度...我必须比较很多数字,所以越快越好。
  4. 我有 numpy、scipy 和标准库。其他任何东西对我来说都很难得到,尤其是对于项目的一小部分。
0 投票
6 回答
4500 浏览

python - 你如何构造一个适合 numpy 排序的数组?

我需要同时对两个数组进行排序,或者更确切地说,我需要对其中一个数组进行排序,并在排序时将其关联数组的相应元素带入其中。也就是说,如果数组是 [(5, 33), (4, 44), (3, 55)] 并且我按第一个轴排序(标记在 dtype='alpha' 下面),那么我想要: [(3.0, 55.0 ) (4.0, 44.0) (5.0, 33.0)]。这些是非常大的数据集,我需要先排序(对于 nlog(n) 速度),然后再执行一些其他操作。我不知道如何以正确的方式合并我的两个单独的数组以使排序算法正常工作。我认为我的问题很简单。我尝试了三种不同的方法:

我注释掉了第一次和第二次尝试,因为它们会产生错误,我知道第三次会起作用,因为这反映了我在 RTFM 时看到的情况。给定数组 x 和 y (它们非常大,仅显示示例)如何构造可以由 numpy.sort 正确调用的数组(称为值)?

*** Zip 很好用,谢谢。额外的问题:我以后如何将排序后的数据再次解压缩到两个数组中?

0 投票
15 回答
1229795 浏览

python - 如何在 NumPy 中创建一个空数组/矩阵?

我不知道如何以通常使用列表的方式使用数组或矩阵。我想创建一个空数组(或矩阵),然后一次添加一列(或行)。

目前我能找到的唯一方法是:

而如果它是一个列表,我会做这样的事情:

有没有办法为NumPy数组或矩阵使用这种表示法?

0 投票
4 回答
1834 浏览

python - 使用 numpy 进行统计

我正在处理一些工作的情节和统计数据,但我不确定如何使用 numpy 进行一些统计:我有一个价格列表和另一个 basePrices。我想知道有多少价格高于basePrice X%,有多少价格高于basePrice Y%。

有没有一种简单的方法可以使用 numpy 做到这一点?

0 投票
2 回答
2482 浏览

python - 有什么方法可以使用 C API 创建 NumPy 矩阵?

我阅读了我能找到的关于 NumPy C API 的文档,但仍然无法确定是否有可能使用 C API 构造矩阵对象——而不是二维数组。该函数适用于数学矩阵,如果用户调用矩阵乘法时忘记将此值从数组转换为矩阵(乘法和求幂是矩阵子类的唯一区别),我不想要奇怪的结果。

0 投票
3 回答
13117 浏览

python - 从字典创建 NumPy 数组的最佳方法?

我刚从 NumPy 开始,所以我可能会遗漏一些核心概念......

从值是列表的字典创建 NumPy 数组的最佳方法是什么?

像这样的东西:

应该变成这样的东西:

我将对每一行做一些基本的统计,例如:

问题:

  • 从字典创建 numpy.array 的最佳/最有效方法是什么?字典很大;几百万把钥匙,每把钥匙大约有 20 件物品。

  • 每个“行”的值的数量是不同的。如果我理解正确 numpy 想要统一大小,那么我应该为缺失的项目填写什么以使 std() 满意?

更新:我忘了提一件事——虽然 Python 技术是合理的(例如,循环数百万个项目很快),但它仅限于单个 CPU。Numpy 操作可以很好地扩展到硬件并使用所有 CPU,因此它们很有吸引力。

0 投票
2 回答
4224 浏览

numpy - 有没有办法降低 scipy/numpy 精度以减少内存消耗?

在我的 64 位 Debian/Lenny 系统(4GByte RAM + 4GByte 交换分区)上,我可以成功地做到:

但是 f 是 anp.complex128的内存消耗是令人震惊的,我不能对结果做更多​​的事情(例如调制系数然后f=ifftn(f))而没有MemoryError回溯。

与其安装更多的 RAM 和/或扩展我的交换分区,是否有某种方法可以控制 scipy/numpy “默认精度”并让它计算一个 complex64 数组?

我知道我可以在之后使用f=array(f,dtype=np.complex64); 我希望它实际上以 32 位精度和一半的内存进行 FFT 工作。

0 投票
13 回答
224010 浏览

python - 如何使用 numpy.correlate 进行自相关?

我需要对一组数字进行自相关,据我所知,这只是该组与自身的相关。

我已经尝试使用 numpy 的相关函数,但我不相信结果,因为它几乎总是给出第一个数字不是最大的向量,因为它应该是。

所以,这个问题实际上是两个问题:

  1. 究竟在numpy.correlate做什么?
  2. 我如何使用它(或其他东西)进行自相关?
0 投票
4 回答
9797 浏览

python - 腌制字符串的更有效方法

pickle 模块在酸洗时似乎使用了字符串转义字符;这变得低效,例如在 numpy 数组上。考虑以下

长度分别为 1133 个字符和 4249 个字符。

z.dumps() 显示类似 "\x00\x00" (字符串中的实际零)的内容,但 pickle 似乎正在使用字符串的 repr() 函数,产生 "'\x00\x00'" (零是 ascii 零)。

即 ("0" in z.dumps() == False) 和 ("0" in cPickle.dumps(z.dumps()) == True)