首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库Numpy

NumPy中的ndarray对象

减小字体 增大字体 作者:本站  来源:本站整理  发布时间:2025-07-22 08:36:18

NumPy模块提供的最重要的对象是ndarray(N-dimensional array,N维数组)。

NumPy ndarray是一系列具有相同数据类型数据元素的集合。

每个数据元素占有的内存区域大小相同,并由称为dtype数据类型的对象表示。

NumPy ndarray数组的索引从0开始。

从ndarray对象中提取的任何数据项(通过切片获取到的)都由数组标量类型之一的Python对象表示。

ndarray、dtype和数组标量类型之间的关系如下图所示:

ndarray、dtype和数组标量类型之间的关系

NumPy ndarray的维数和数据元素数量由其shape属性进行定义,该属性是包含N个非负整数的元组对象,每个非负整数代表NumPy ndarray数组每维的数据元素数量

不同的ndarray可以共享相同的数据,因此在一个ndarray中所做的修改可能在另一个ndarray中可见。

ndarray数组的创建

使用NumPy中的array函数可以创建一个ndarray数组。其基本语法形式如下:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

各参数的含义如下表所示:

参数名称 参数含义
object 序列对象或嵌套的序列对象,用于生成数组中元素
dtype 可选参数,默认为None,表示数组元素的数据类型
copy 可选参数,默认为True,数组数据元素被复制(仅在通过复制方式创建新数组时起作用)。
order

可选参数, 在object参数为非数组时,指定数组数据元素的内存布局。取值有4种:

  • C:按行优先安排数组元素;
  • F:按列优先安排数组元素;
  • A:表示任意,取决于输入的对象是F还是C;
  • K: 保留原顺序
subok 可选参数,布尔类型,默认值为False,表示强制返回一个基类类型的数组,如果取值为True,则传递子类。
ndmin 可选参数,是一个整型数字,指定生成数组的最小维度

为了更好的理解该函数,下面举一些例子用于说明相关参数的作用。

一维数组的创建

下面是一个使用array函数创建一维数组的例子。

import numpy as np
arr1 = np.array([1, 2, 3])
print(arr1)

输出结果如下:

[1 2 3]

在上面的程序代码中,import numpy as np用于导入NumPy库,并定义一个名为np的别名。这种导入NumPy库的写法在使用中是常见的。这种写法避免了与Python或其他库中的同名标识符产生冲突。

多维数组的创建

下面是一个创建二维数组的例子:

import numpy as np
arr2 = np.array([[1, 2], [3, 4]])
print(arr2)

输出结果如下

[[1 2]
 [3 4]]

下面是一个创建三维数组的例子:

import numpy as np
arr3 = np.array([[[1, 2], [3, 4]],[[5, 6], [7, 8]]])
print(arr3)

输出结果如下

[[[1 2]
  [3 4]]

 [[5 6]
 [7 8]]]

创建数组时指定dtype参数

下面是在定义数组时指定dtype参数的例子:

import numpy as np
arr4 = np.array([1, 2, 3, 4], dtype=np.int8)
arr5 = np.array([1, 2, 3, 4], dtype=complex)
print(arr4)
print(arr5)

输出结果为:

[1 2 3 4]
[1.+0.j 2.+0.j 3.+0.j 4.+0.j]

在上面的例子中,在定义arr4时,指定数组数据元素的数据类型为8位的整型数,其取值范围为:-128~127,如果数组的数据元素值超过这个范围,程序会抛出OverflowError错误。

指定order参数

import numpy as np
arr6 = np.array([[1, 2], [3, 4]], order='C')
arr7 = np.array([[1, 2], [3, 4]], order='F')
print(arr6)
print(arr7)

输出结果如下:

[[1 2]
 [3 4]]
[[1 2]
 [3 4]]

从上面的输出结果可以看出,两者并没有区别。但是其在内存中存储时是有区别的:在指定order参数值为'C'时,其表示为C语言风格的存储顺序,即行优先的顺序,在上面的例子中,行优先顺序的内存存储布局为:1,2,3,4。

在指定order参数值为'F'时,其表示为Fortran风格的存储顺序,即列优先的顺序。在上面的例子中,列优先顺序的内存存储布局为:1,3,2,4。

指定ndmin参数

下面是在定义数组时指定ndmin的例子:

import numpy as np
arr8 = np.array([1, 2, 3, 4, 5, 6], ndmin=2)
arr9 = np.array([1, 2, 3, 4, 5, 6], ndmin=3)
print(arr8)
print(arr9)

输出结果如下:

[[1 2 3 4 5 6]]
[[[1 2 3 4 5 6]]]

从上面的输出结果可以看出,对于同样的数据序列,因为指定ndmin参数值不同,其生成的数组维度是不同的。

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

  • ·上一篇内容:NumPy的安装
  • ·下一篇内容:已经没有了

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.