SciPy 和 NumPy 之间的关系

2023-12-07

SciPy 似乎在其自己的命名空间中提供了大部分(但不是全部 [1])NumPy 的函数。换句话说,如果有一个名为numpy.foo,几乎可以肯定有一个scipy.foo。大多数时候,两者看起来完全相同,甚至经常指向同一个函数对象。

有时,它们是不同的。举个最近出现的例子:

  • numpy.log10 is a ufunc对于负参数返回 NaN;
  • scipy.log10返回负参数的复数值并且看起来不是 ufunc。

同样可以这样说log, log2 and logn,但不是关于log1p [2].

另一方面,numpy.exp and scipy.exp同一个 ufunc 似乎有不同的名称。这也适用于scipy.log1p and numpy.log1p.

另一个例子是numpy.linalg.solve vs scipy.linalg.solve。它们很相似,但后者比前者提供了一些附加功能。

为什么会出现明显的重复?如果这是批发进口的numpy进入scipy命名空间,为什么行为上有细微的差异和缺少的功能?是否有一些总体逻辑可以帮助消除混乱?

[1] numpy.min, numpy.max, numpy.abs和其他一些在该领域没有对应的scipy命名空间。

[2] 使用 NumPy 1.5.1 和 SciPy 0.9.0rc2 进行测试。


上次我检查过,scipy__init__方法执行一个

from numpy import *

以便在导入 scipy 模块时将整个 numpy 命名空间包含到 scipy 中。

The log10你所描述的行为很有趣,因为both版本来自 numpy。一个是一个ufunc,另一个是numpy.lib功能。为什么 scipy 更喜欢库函数而不是ufunc,我脑子里不知道。


编辑:事实上,我可以回答log10问题。在 scipy 中查找__init__方法我看到这个:

# Import numpy symbols to scipy name space
import numpy as _num
from numpy import oldnumeric
from numpy import *
from numpy.random import rand, randn
from numpy.fft import fft, ifft
from numpy.lib.scimath import *

The log10你在 scipy 中得到的函数来自numpy.lib.scimath。看看该代码,它说:

"""
Wrapper functions to more user-friendly calling of certain math functions
whose output data-type is different than the input data-type in certain
domains of the input.

For example, for functions like log() with branch cuts, the versions in this
module provide the mathematically valid answers in the complex plane:

>>> import math
>>> from numpy.lib import scimath
>>> scimath.log(-math.exp(1)) == (1+1j*math.pi)
True

Similarly, sqrt(), other base logarithms, power() and trig functions are
correctly handled.  See their respective docstrings for specific examples.
"""

似乎该模块覆盖了基本 numpy ufuncssqrt, log, log2, logn, log10, power, arccos, arcsin, and arctanh。这解释了您所看到的行为。这样做的根本设计原因可能隐藏在某处的邮件列表帖子中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SciPy 和 NumPy 之间的关系 的相关文章

  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • 如何解决使用 Spark 从 S3 重新分区大量数据时从内存中逐出缓存的表分区元数据的问题?

    在尝试从 S3 重新分区数据帧时 我收到一个一般错误 Caused by org apache spark SparkException Job aborted due to stage failure Task 33 in stage 1
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 使用 Javascript 选定单词的索引

    如何使用 Javascript 获取 HTML 中选定文本的索引 例如 在一个 HTML 文件中 有如下段落 我住在印度 印度是一个非常美丽的国家 现在如果用户选择India在第一句话中应该有一个alert 5如果用户选择India第二行然
  • C# lambda 编译成什么?堆栈框架,匿名类型的实例,还是?

    C lambda 编译成什么 堆栈框架 匿名类型的实例 还是 我读过这个question 这主要回答了 为什么 在使用隐式类型功能时不能使用 lambda 但是 这个问题旨在回答编译器生成什么构造来实际执行 lambda 代码 它是匿名类型
  • 使用 Telnet 从 Gmail 发送电子邮件

    我正在 Windows 上工作 并且启用了 telnet 客户端 在cmd提示符下 telnet smtp gmail com 587 220 mx google com ESMTP dk3sm50678627pbc 32 gsmtp He
  • gulp:如何在不刷新的情况下更新浏览器(仅适用于 css 更改)

    我已经设置了 gulp 以便在进行更改时浏览器会重新加载 但是 对于 css 更改 我希望浏览器无需刷新即可更新 但我不知道如何执行此操作 对于我当前的设置 我使用了this教程 var debug require gulp debug c
  • 使用正则表达式拆分列中的值

    我的 data frame 有两列 如下所示 dat ID Details id 1 box1 homodomain gn box1 os homo sapiens p 4 se 1 id 2 sox2 plurinet gn plu os
  • 如何在 unicode 中管理混合 LTR 和 RTL 语言?

    有时我们必须在显示屏上显示混合了 RTL 和 LTR 语言的消息 该消息采用 unicode 格式 那么 unicode 如何处理混合呢 对平台有依赖吗 该过程由此处描述的 Unicode 双向算法描述 http www unicode o
  • 如何使用 md5 代替 bcrypt?

    我需要使用md5 代替bcrypt 用于存储密码 但是当我这样做时 protected function create array data return Account create username gt data username e
  • 这段代码中DATA SEGMENT下的代码什么时候执行?

    我是汇编编程的初学者 我在谷歌上浏览了很多 信息很多 但是我还是看不懂下面的代码 如果有人能解释 我将不胜感激 MOV AX 数据 我也不明白数据段中存在的代码何时会在此程序中执行 ASSUME CS CODE DS DATA CODE S
  • 将参数传递到 JButton ActionListener

    我正在寻找一种将变量或字符串或任何内容传递到 JButton 的匿名 actionlistener 或显式 actionlistener 中的方法 这是我所拥有的 public class Tool public static void a
  • Require.js 与 Phonegap 和 iOS 推送通知

    我正在使用 Phonegap Backbone js 和 Require js 构建一个应用程序 该应用程序实现了 Phonegap 推送通知 目前 index html 中脚本的加载如下所示
  • jQuery keyup() 非法字符

    我有一个字段 希望在用户键入时显示一些非法字符 在下面的示例中我该如何做到这一点 input bind change keyup function var val this attr value if val contains this c
  • 我们如何检测影子根是使用 v0 还是 v1 API 创建的?

    假设一个 JS 模块导出shadowRoot这是用以下任一方法创建的el createShadowRoot or el attachShadow 我们不知道是哪个 我们如何检测根是 v0 影子根还是 v1 影子根 即我们如何检测使用哪种方法
  • 如何将n列连接成一列?

    我的目标是如果我有这个 colmuns c1 c2 c3 c4 c5 n row1 a a a a a row2 b b b b b rowN 我想做一个会返回的查询 myCol aaaaa bbbbb nnnnn 我知道我能做到 sele
  • 函数模板专业化的别名

    int f1 int a int b return a b int f2 int a int b return a b template
  • 在 Ruby 中对数组进行排序,忽略冠词(“the”、“a”、“an”)

    在我的应用程序中 我需要显示歌曲列表 现在我正在这样做 Song all sort x y x artist name lt gt y artist name 不幸的是 这意味着 The Notorious B I G 将按 T 排序 而我
  • 删除mysql字段中的重复单词

    我想知道是否可以使用 mysql 查询从一个字段中删除重复的文本 或者使用 PHP 是否可以更好地解决这样的问题 我有一个数据库 用户可以在其中输入可以搜索的标签 我注意到某些标签具有我想要添加到字段中的同义词 但在某些情况下同义词已经存在
  • 管理.py 运行服务器

    我在跑步python manage py runserver从机器A当我尝试检查机器时B 我输入的网址是http A 8000 我收到类似的错误The system returned 111 Connection refused 您可以通过
  • Wix 安装程序:已安装的服务在启动时无法读取 HKLM 注册表项

    我正在使用 wix 工具 3 11 创建一个安装服务的 msi 安装程序运行自定义操作并将变量返回到 wix 以写入注册表 HKLM 该服务启动并尝试读取注册表 但无法完成并且失败 如果我手动编写注册表 安装程序将完美运行 msi 日志中的
  • 有没有办法缩写自定义类类型声明?

    有没有办法为以下内容创建缩写或自定义类名 Dictionary
  • SciPy 和 NumPy 之间的关系

    SciPy 似乎在其自己的命名空间中提供了大部分 但不是全部 1 NumPy 的函数 换句话说 如果有一个名为numpy foo 几乎可以肯定有一个scipy foo 大多数时候 两者看起来完全相同 甚至经常指向同一个函数对象 有时 它们是