该文档说明了标量的用途,例如,传统的Python数字(例如float和integer)太原始了,因此需要更复杂的数据类型。
它还说明某些标量(数据类型层次结构);以及标量的几个属性。
但是它从来没有给出确切的定义,确切说明了在Python上下文中标量是什么。
我想对此深究。所以我的问题是,以最简单的方式向我解释什么是pythonic标量。
甲NumPy的标量是任何html" target="_blank">对象,它是一个实例np.generic
或其type
是np.ScalarType
:
In [12]: np.ScalarType
Out[13]:
(int,
float,
complex,
long,
bool,
str,
unicode,
buffer,
numpy.int16,
numpy.float16,
numpy.int8,
numpy.uint64,
numpy.complex192,
numpy.void,
numpy.uint32,
numpy.complex128,
numpy.unicode_,
numpy.uint32,
numpy.complex64,
numpy.string_,
numpy.uint16,
numpy.timedelta64,
numpy.bool_,
numpy.uint8,
numpy.datetime64,
numpy.object_,
numpy.int64,
numpy.float96,
numpy.int32,
numpy.float64,
numpy.int32,
numpy.float32)
这个定义来自看源代码的np.isscalar:
def isscalar(num):
if isinstance(num, generic):
return True
else:
return type(num) in ScalarType
请注意,您可以使用来测试某物是否为标量np.isscalar
:
>>> np.isscalar(3.1)
True
>>> np.isscalar([3.1])
False
>>> np.isscalar(False)
True
我们怎么知道我们知道什么? 我喜欢学习人们如何知道他们所知道的知识,而不是回答自己。因此,让我尝试解释以上答案的来源。
拥有合适的工具可以帮助您自己解决诸如此类的问题。
我通过使用IPython发现了这一点。使用其TAB补全功能,键入
In [19]: import numpy as np
In [20]: np.[TAB]
使IPython在np
模块名称空间中显示所有变量。搜索字符串"scalar"
将使您进入np.ScalarType
和np.isscalar
。打字
In [20]: np.isscalar?
(注意最后的问号)提示IPython向您显示np.isscalar
定义的位置:
File: /data1/unutbu/.virtualenvs/dev/lib/python2.7/site-packages/numpy/core/numeric.py
这就是我对的定义的方式isscalar
。另外,numpy文档isscalar
也有指向源代码的链接。
据我所知,基本类型是Scalar,数组是聚合的,但用户定义的类型呢?根据什么标准,我可以将它们分为两类?
主要内容:NumPy使用需求,NumPy应用场景NumPy 的全称是“ Numeric Python”,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组。 在数组算术计算方面, NumPy 提供了大量的数学函数。NumPy 的底层主要用 C语言编写,因此它能够高速地执行数值计算。NumPy 还提供了多种数据结构,这些数据结构能够非常契合的应用在数组和矩阵的运算上。 NumPy 的前身是 Numeric 程序包,该包由 Jim
原文:What is NumPy? NumPy是Python中用于科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生的对象(如掩码数组和矩阵),以及数组快速操作的各种各样的例程,包括数学、逻辑、图形操作,排序、选择、I/O、离散傅里叶变换、基本线性代数、基本统计操作,随机模拟以及其他。 NumPy包的核心是ndarray对象。它封装了均匀数据类型的n维数组,带有一些在编译过的代码
问题内容: 我正在使用LLBLGEN,这里有一种方法可以将查询执行为。谷歌搜索给我一个定义,它们是一样的吗? 问题答案: 标量查询是一种返回由一列组成的一行的查询。
我尝试使用numpy阵列执行以下操作: 这应该给出一个结果: 但如果输入向量是numpy数组: 它(预期)返回一个: 问题是,在此之后,我需要将结果转换回numpy数组。 我想知道的是,如果有一个有效的numpy函数可以避免这些来回的转换,那该怎么办?
问题内容: 如果我有,这给了我,我怎么能回到原来的阵列? 问题答案: 简短而甜美,没有缓慢的Python循环。我们对除第一个元素()和除最后一个()以外的所有元素进行查看,并逐元素相减。该副本可确保我们减去原始元素值,而不是我们正在计算的值。(在NumPy 1.13及更高版本上 ,您可以跳过通话。)