什么是 Numpy 标量和数组标量

What are Numpy Scalars and Array Scalars

我正在尝试学习 NumPy 的基本概念,但无法解决一些问题。我正在关注这个 NumPy documentation

标量 Python只定义了一种特定数据class(只有一种整数类型,一种浮点类型等)。这在不需要关心数据在计算机中表示的所有方式的应用程序中可能很方便。然而,对于科学计算,通常需要更多的控制。 这里Scalars是指单值吗?

在 NumPy 中,有 24 种新的基本 Python 类型 来描述不同类型的标量。这些类型描述符主要基于编写 CPython 的 C 语言中可用的类型,以及一些与 Python 的类型兼容的附加类型。 这里的 python 类型是什么意思?尽管它说它基于 C 语言类型。

数组标量与 ndarrays 具有相同的属性和方法。这允许人们在与数组相同的基础上部分地处理数组的项目,平滑混合标量和数组操作时产生的粗糙边缘。 完全不懂数组标量是什么?搜索时找到 this,但仍然感到困惑

Interestingly, the array scalars can have some array-like attributes. The only missing attribute is ctype.

如果数组标量与 ndarray 具有相同的属性?那么使用哪一个?

Here Scalars means single value?

是的,例如整数或浮点数。

What python type means here? although its saying its based on C lang types.

你在 python 中拥有的所有东西都是 python 类型的。函数、浮点数、类、日期时间...。他们说 numpy 类型是基于 C 类型的。

Absolutely not getting what Array scalar is?

数组标量是您在对 numpy 数组进行索引时得到的结果。例如。如果你有一个 float64 类型的数组,你取出第一个值,你会得到一个 float64 类型的数组标量,它不同于 python 的浮点数。参见

If array scalars have same attributes as ndarrays? so which one to use?

你应该使用 ndarrays。顺便说一下,这与 numpy 数组相同。我认为数组标量是一种技术,你很少需要考虑与常规 python 浮点数和整数不同的问题......