详解numpy.array()函数:创建高效多维数组的Python方法

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
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞0打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容