当前位置: 首页 > 知识库问答 >
问题:

numpy的array()和asarray()函数有什么区别?

李文轩
2023-03-14

numpy的array()asarray()函数之间有什么区别?什么时候你应该用一个而不是另一个?它们似乎为我能想到的所有输入生成相同的输出。

共有1个答案

裴曜灿
2023-03-14

由于其他问题被html" target="_blank">重定向到关于asanyarray或其他数组创建例程的问题上,因此可能有必要对它们各自的工作做一个简短的总结。

不同之处主要在于何时返回不变的输入,而不是将一个新数组作为副本。

array提供了各种各样的选项(大多数其他函数都是围绕它的简单包装),包括用于确定何时复制的标志。一个完整的解释需要和文档一样长的时间(请参见数组创建,但简要地说,这里有一些示例:

  • np.array(a)np.array(m)将复制这两个选项,因为这是默认行为。
  • NP.array(a,copy=false)NP.array(m,copy=false)将复制m而不复制a,因为m不是ndarray
  • np.array(a,copy=false,subok=true)np.array(m,copy=false,subok=true)都不会复制,因为m矩阵,它是ndarray的子类。
  • np.array(a,DTYPE=int,copy=FALSE,SUBOK=TRUE)将复制这两个文件,因为DTYPE不兼容。

大多数其他函数都是array的薄包装,当发生复制时可以控制:

  • asarray:如果输入是兼容的ndarray(copy=false),则将未复制地返回输入。
  • asanyarray:如果输入是兼容的ndarray或类似于matrix的子类(copy=false,subok=true),则将不复制地返回输入。
  • AsContiguousArray:如果输入是以连续C顺序(copy=false,order='C')兼容的ndarray,则将未复制地返回输入。
  • asForTranArray:如果输入是以连续Fortran顺序(copy=falseorder='f')兼容的ndarray,则将未复制地返回输入。
  • require:如果输入与指定的要求字符串兼容,则将未复制地返回该输入。
  • 复制:始终复制输入。
  • fromiter:输入被视为可迭代的(因此,例如,您可以从迭代器的元素构造数组,而不是用迭代器构造object数组);始终复制。

还有一些方便的函数,如asarray_chkfinite(复制规则与asarray相同,但如果有任何naninf值,则会引发valueerr);还有一些用于子类的构造函数,如matrix或用于记录数组等特殊情况的构造函数,当然还有实际的ndarray构造函数(它允许您在缓冲区上直接创建数组)。

 类似资料:
  • 问题内容: Numpy和函数之间有什么区别?什么时候应该使用一个而不是另一个?他们似乎为我能想到的所有输入生成了相同的输出。 问题答案: 由于将其他问题重定向到这个询问问题或其他数组创建例程的问题,因此可能有必要简要概述每个问题的作法。 区别主要在于何时返回不变的输入,而不是将新数组作为副本。 提供多种选择(其他大多数功能都围绕着薄包装纸),包括用于确定何时复制的标志。完整的解释将和文档一样长(请

  • 问题内容: 和Numpy有什么区别?我在哪里可以找到numpy源代码中的实现? 问题答案: 只是创建一个便利函数; 它本身不是类。 您也可以使用创建数组,但不建议这样做。来自以下文档的字符串: 阵列应该使用来构造,或…这里给出的参数是指低级方法(用于实例化阵列)。 实现的大部分内容都在C代码中(在multiarray中),但是您可以在这里开始查看ndarray接口: https://github.

  • Numpy中的和之间有什么区别?我在哪里可以找到numpy源代码中的实现?

  • 这两个函数返回相同的列表。那么两个不同的功能执行相同的工作需要什么。

  • 问题内容: 作者:霖呆呆 Array(3)和Array(3, 4)的区别? 考察知识点: 和 参数个数不同时的不同表现 的作用 问题答案: Array和new Array的执行结果一样 Array(3) => [empty x3] 一个参数的时候创建一个长度为3的空数组 Array(3, 4) => [3, 4] 大于一个参数的时候则把参数作为元素创建一个长度可变数组 Array.of(3) =>

  • 问题内容: 在Python中,和之间有什么区别? 我猜想 load() 函数必须与文件对象一起使用(因此,我需要使用上下文管理器),而 load() 函数将文件路径作为字符串。这有点令人困惑。 字母“ s ” 代表 字符串 吗? 非常感谢你的回答! 问题答案: 是的,代表字符串。该函数不采用文件路径,而是将文件内容作为字符串。查看位于https://docs.python.org/2/librar