跳转至

NumPy数组属性

NumPy 的 ndarray 对象有许多属性,这些属性提供了数组的形状、数据类型、维度等信息。下面是 ndarray 的主要属性及其详细解释和示例:

1. ndarray.ndim

数组的维度(轴的数量)。

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.ndim)  # 输出: 2

2. ndarray.shape

数组的形状,返回一个表示每个维度大小的元组。

print(array.shape)  # 输出: (2, 3)

3. ndarray.size

数组的元素总数。

print(array.size)  # 输出: 6

4. ndarray.dtype

数组元素的数据类型。

print(array.dtype)  # 输出: int64 (根据系统不同可能会有所不同)

5. ndarray.itemsize

数组中每个元素的字节大小。

print(array.itemsize)  # 输出: 8 (对于 int64 类型的元素)

6. ndarray.nbytes

数组所有元素总共占用的字节大小。

print(array.nbytes)  # 输出: 48 (6 个元素,每个 8 字节)

7. ndarray.T

数组的转置(对 2D 数组而言,行和列交换)。

print(array.T)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

8. ndarray.data

包含实际数组元素的缓冲区。

print(array.data)
# 输出: <memory at 0x...>

9. ndarray.real

数组元素的实部(对于复数数组)。

complex_array = np.array([1+2j, 3+4j])
print(complex_array.real)  # 输出: [1. 3.]

10. ndarray.imag

数组元素的虚部(对于复数数组)。

print(complex_array.imag)  # 输出: [2. 4.]

11. ndarray.flat

返回一个数组的扁平迭代器。

for element in array.flat:
    print(element)
# 输出: 1 2 3 4 5 6

12. ndarray.flags

返回数组的内存布局信息。

print(array.flags)
# 输出:
#   C_CONTIGUOUS : True
#   F_CONTIGUOUS : False
#   OWNDATA : True
#   WRITEABLE : True
#   ALIGNED : True
#   UPDATEIFCOPY : False

13. ndarray.strides

每个维度中步进大小(以字节为单位)。

print(array.strides)  # 输出: (24, 8)

14. ndarray.base

如果数组是某个数组的视图,那么 base 属性指向该原始数组;否则为 None

view = array.view()
print(view.base is array)  # 输出: True
copy = array.copy()
print(copy.base is array)  # 输出: False

15. ndarray.ctypes

用于与 C 库进行交互。

print(array.ctypes)
# 输出: <numpy.core._internal._ctypes object at 0x...>

这些属性为 NumPy 数组提供了丰富的元数据,可以帮助我们更好地理解和操作数组。

评论