Python中生成ndarray实例讲解

1. 了解ndarray

在Python中,ndarray(n-dimensional array,多维数组)是最重要也是最基础的数据结构之一。通过ndarray,我们能够以矩阵的形式存储和处理大量数据。因此,我们需要学会如何创建ndarray实例。

2. 如何生成ndarray实例

2.1 通过Python中的range()生成ndarray

通过range()生成ndarray,可以指定起始、终止、步长等参数。我们可以使用Python内置的array模块来创建ndarray实例,实现方式如下:

import array

import numpy as np

arr = array.array('i', range(10))

ndarr = np.array(arr)

print(ndarr)

输出结果如下所示:

[0 1 2 3 4 5 6 7 8 9]

2.2 通过Python中的zeros()和ones()生成ndarray

zeros()和ones()是numpy中的方法,可以方便地创建值为0或者1的ndarray实例。

首先,我们通过zeros()创建一个2行3列的ndarray实例,元素均为0,代码实现如下:

import numpy as np

ndarr = np.zeros((2, 3))

print(ndarr)

输出结果如下所示:

[[ 0. 0. 0.]

[ 0. 0. 0.]]

接着,我们通过ones()创建一个2行3列的ndarray实例,元素均为1,代码实现如下:

import numpy as np

ndarr = np.ones((2, 3))

print(ndarr)

输出结果如下所示:

[[ 1. 1. 1.]

[ 1. 1. 1.]]

2.3 通过Python中的randn()和random()生成ndarray

randn()和random()是numpy中的方法,可以用来随机生成ndarray实例。

首先,我们通过randn()生成一个3行2列的ndarray实例,随机填充以0为中心、标准差为1的正态分布,代码实现如下:

import numpy as np

ndarr = np.random.randn(3, 2)

print(ndarr)

输出结果如下所示:

[[-0.31864567 1.02641974]

[-1.22064438 -1.53509397]

[-0.45360311 -0.81773088]]

接着,我们通过random()生成一个3行2列的ndarray实例,随机填充0到1之间的浮点数,代码实现如下:

import numpy as np

ndarr = np.random.random((3, 2))

print(ndarr)

输出结果如下所示:

[[ 0.61611135 0.34248583]

[ 0.72746433 0.68262628]

[ 0.80684673 0.40959986]]

3. 如何控制ndarray中元素的类型

控制ndarray中元素的类型,可以通过ndarray的dtype参数来实现。常见的数据类型包括int、float、complex、bool等。

在使用上述方法创建ndarray实例时,我们并没有指定dtype参数,因此numpy会根据数据类型自动判断。例如,在上述方法中使用zeros()函数创建ndarray实例时,默认是生成浮点数类型的ndarray。如果希望生成整型的ndarray,则需要手动指定dtype参数为int类型,如下所示:

import numpy as np

ndarr = np.zeros((2, 3), dtype=int)

print(ndarr)

输出结果如下所示:

[[0 0 0]

[0 0 0]]

4. 总结

本文以Python中生成ndarray实例为主题,介绍了四种方法:通过Python中的range()生成ndarray、通过Python中的zeros()和ones()生成ndarray、通过Python中的randn()和random()生成ndarray、通过控制ndarray中元素的类型来控制ndarray实例的数据类型。其中,每种方法都附有相应的代码实现和输出结果,方便读者通过代码实践加深对ndarray的理解。最后,我们建议读者多多尝试使用ndarray,发挥其在科学计算和数据处理中的重要作用。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签