numpy.array() 是 Python 库 numpy 中的一个核心函数,用于创建 numpy.ndarray(NumPy 数组),这是一种高效、灵活且功能强大的多维数组对象,专为数值计算设计。以下是该函数的基本用法、参数说明及功能概述:
函数签名与基本用法
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
参数详解
- object (array-like): 数据源。这是要转换为 numpy.ndarray 的对象。它可以是以下几种类型:
- 数组:如内置的 Python 列表、元组或其他序列类型。
- 公开数组接口的对象:即实现了 NumPy 定义的数组接口的对象。
- 其 __array__ 方法返回数组的对象:某些类可能定义了 __array__ 方法,用于将其实例转换为 numpy.ndarray。
- 任何(嵌套)序列:包括一维或多维的序列结构。
如果 object 是标量(单个数值或非序列对象),则返回包含该对象的 0 维数组。
- dtype (data-type, optional): 数据类型。指定创建的数组应具有的数据类型。如果未指定,NumPy 会尝试根据 object 中的元素自动确定一个能够容纳所有元素的最小类型。
- copy (bool, default: True): 是否复制数据。当设置为 True(默认)时,numpy.array() 会创建 object 数据的副本,确保新数组与原始数据分离。如果设置为 False,且 object 支持缓冲区协议且满足要求(如内存布局、数据类型等),则可能直接使用其内存而不进行复制。
- order ({‘C’, ‘F’, ‘A’, ‘K’}, default: ‘K’): 数组顺序。控制新数组的内存布局:
- ‘C’(C 风格):行优先顺序(行内元素连续存储)。
- ‘F’(Fortran 风格):列优先顺序(列内元素连续存储)。
- ‘A’(Any):如果 object 已经是 NumPy 数组并保持其原有的内存布局。
- ‘K’(Keep):尽可能保留输入数组的原有顺序(根据输入数据的内存布局决定)。
- subok (bool, default: False): 是否允许子类。如果为 True,允许返回与 object 类型相同的子类数组(如果适用)。否则,总是返回 numpy.ndarray 类型。
- ndmin (int, default: 0): 最小维度。指定创建的数组至少应具有的维度数。如果 object 自身的维度小于 ndmin,则在其前部添加适当的轴(使用 1 进行填充)以达到指定的维度数。
返回值
numpy.array() 返回一个 numpy.ndarray 对象,其内容和结构由输入参数决定。
示例
import numpy as np
# 从列表创建一维数组
arr_from_list = np.array([1, 2, 3, 4, 5])
print(arr_from_list)
# 输出:[1 2 3 4 5]
# 从多维列表创建二维数组
arr_from_nested_list = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_from_nested_list)
# 输出:
# [[1 2 3]
# [4 5 6]]
# 指定数据类型
arr_with_dtype = np.array([1, 2, 3, 4, 5], dtype=np.float64)
print(arr_with_dtype.dtype)
# 输出:float64
# 控制数组顺序
arr_with_order = np.array([[1, 2, 3], [4, 5, 6]], order='F')
print(arr_with_order.flags['C_CONTIGUOUS'], arr_with_order.flags['F_CONTIGUOUS'])
# 输出:False True
# 添加最小维度
arr_with_ndmin = np.array([1, 2, 3], ndmin=2)
print(arr_with_ndmin.shape)
# 输出:(1, 3)
总结来说,numpy.array() 函数是创建 numpy.ndarray 的主要途径,它能将各种类型的数据源转换为统一、高效的多维数组结构,支持丰富的参数配置以满足不同场景下的数组创建需求。这些数组在数值计算、机器学习、数据分析等领域广泛使用,提供比常规 Python 序列更强大的功能和性能。
存档地址:https://www.yuque.com/worthstudy/study/ipkgxroyxldxbsig?singleDoc# 《numpy.array()函数》
© 版权声明
文章版权归作者所有,如需转载请联系作者。若文章内容侵犯了您的权益,请通过网站底部联系方式联系我们处理(本站具有最终解释权)。如有不便之处,敬请谅解。
THE END
暂无评论内容