这是一个很经典的问题很多初学者都会在这里绕晕。简单直接的回答是ndarray 是类Classarray() 是函数Function。你可以把 ndarray 想象成“汽车”这个概念而 array() 就是“造车”这个动作。你调用 array() 这个动作最终得到的就是一辆 ndarray 牌子的汽车。下面我们详细拆解一下本质区别类 vs 函数np.ndarray身份NumPy 库中定义的一个类是 NumPy 所有数据结构的核心和基础。作用它定义了“N 维数组”这个数据结构应该长什么样有哪些属性比如 shape, dtype以及它能做什么有哪些方法比如 .sum(), .reshape()。使用你几乎不会直接去调用 np.ndarray() 来创建数组因为它的构造函数用起来很麻烦而且创建出来的数组元素是未初始化的随机值很不安全。np.array()身份NumPy 提供的一个函数。作用它是一个非常方便的“工厂函数”专门用来创建 ndarray 对象。使用这是你最常用的创建数组的方式。你给它一个 Python 列表或元组它帮你处理所有复杂的初始化逻辑比如自动推断数据类型 dtype、处理嵌套列表的维度等最后返回给你一个完美的 ndarray 对象。代码验证看下面这段代码你就能一目了然import numpy as np使用 np.array() 函数创建数组arr np.array([, ])查看 arr 的类型print(type(arr))输出看到了吗arr 这个变量的类型就是 numpy.ndarray 类验证 np.array 和 np.ndarray 是不是同一个东西print(np.array is np.ndarray)输出False它们是不同的一个是函数一个是类。为什么会有这种设计这是一种很常见的编程模式叫做工厂模式。ndarray 类就像汽车的蓝图定义了汽车的所有结构和功能但它本身不能开。array() 函数就像生产线。你给生产线一堆零件Python 列表它按照 ndarray 这张蓝图帮你组装出一辆可以开的汽车。这样做的好处是方便你不需要了解 ndarray 类复杂的构造函数细节只需要调用一个简单的 array() 函数。安全array() 函数会帮你做很多检查和处理比如自动推断最合适的 dtype避免你直接操作底层类时出错。总结特性 np.array np.ndarray本质 函数 (Function) 类 (Class)角色 创建数组的“工厂” 数组本身的“蓝图”使用方式 np.array() 几乎不直接使用| 返回值 | 一个 ndarray 对象 | 一个 ndarray 对象 |一句话记住array() 是“造” ndarray 对象的函数ndarray 是“造”出来的那个对象所属的类。