当前位置: 首页 > 面试题库 >

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

宋运锋
2023-03-14
问题内容

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


问题答案:

由于将其他问题重定向到这个询问问题asanyarray或其他数组创建例程的问题,因此可能有必要简要概述每个问题的作法。

区别主要在于何时返回不变的输入,而不是将新数组作为副本。

array提供多种选择(其他大多数功能都围绕着薄包装纸),包括用于确定何时复制的标志。完整的解释将和文档一样长(请参阅Array
Creation
,但是简要地,这里有一些示例:

假设andarray,并且mmatrix,他们都拥有dtypefloat32

  • 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)不会复制任何内容,因为mmatrix,这是的子类ndarray
  • np.array(a, dtype=int, copy=False, subok=True)将同时复制两者,因为与dtype不兼容。

其他大多数功能都是array在复制发生时围绕该控件的薄包装器:

  • asarray:如果兼容ndarraycopy=False),则输入将返回未复制的状态。
  • asanyarray:如果输入是兼容ndarray或子类matrix(如copy=Falsesubok=True),则输入将不复制就返回。
  • ascontiguousarray:如果输入是兼容ndarray的连续C顺序(copy=False,,则将返回未复制的输入)order='C')
  • asfortranarray:当且仅当它是一个兼容的输入将被返回未复制ndarray在连续的Fortran顺序(copy=Falseorder='F')。
  • require:如果输入与指定的要求字符串兼容,则输入将不复制而返回。
  • copy:总是复制输入。
  • fromiter:输入被视为可迭代的(例如,您可以从迭代器的元素构造一个数组,而不是object使用迭代器的数组);始终复制。

还有一些便利功能,例如asarray_chkfinite(与复制规则相同asarray,但复制规则与相同,但ValueError如果有naninf值,则会提高),以及子类的构造函数(例如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