Numpy Python中通过迭代方式构建数组的方式

Numpy Python中通过迭代方式构建数组的方式

在Python中,Numpy是一种广泛使用的库,主要用于高效处理数字运算和数据分析任务。其中,其最重要的特性之一就是numpy.ndarray数组,可以通过许多不同的方式构建和操作。

然而,对于初学者来说,最常见的问题之一就是如何通过迭代的方式对数组进行构建。在这篇文章中,我们将介绍几种不同的方法来解决这个问题,并且提供一些示例说明。

阅读更多:Numpy 教程

通过列表创建数组

最简单的方法就是通过列表创建一个数组。这可以通过numpy的array函数实现,如下所示:

import numpy as np

my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)

print(my_array)

输出:

[1 2 3 4 5]

这里,我们首先导入了numpy库。然后,我们创建了一个Python列表my_list,并将其转换为numpy数组my_array。最后,我们将my_array打印出来,以验证它的正确性。

这种方法是最基础的,由于在Python中的任何迭代器都可以转换为一个列表,这意味着可以轻松地将循环数据添加到numpy数组中。

例如,在下面的代码中,我们使用一个循环来构建一个包含0到99的整数的数组:

import numpy as np

my_list = []

for i in range(100):
    my_list.append(i)

my_array = np.array(my_list)

print(my_array)

输出:

[ 0  1  2  3 ... 96 97 98 99]

使用numPy函数创建数组

另一种常见的方法是使用numpy函数,这些函数可以生成各种类型的数组。有一个重要的函数是numpy.arange(),可以用来生成一个包含给定范围内数字的数组,如下所示:

import numpy as np

my_array = np.arange(0, 10, 1)

print(my_array)

输出:

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

在这里,我们使用了numpy.arange()函数,它接受三个参数。第一个是生成的数组的起始值。在这里,我们开始于0。第二个参数是该数组的最终值,并且数组上产生的最终值是比最终值小的值。在这个例子中,我们的最终值是10,但这个数组在9之前停止。第三个也是可选参数,它是数组中从一个值到下一个值的范围。在这里,我们以1为间隔。

numpy.arange()函数有很多应用,如生成一维的等差数列、二维的网格数据等。

# 生成一维的等差数列
import numpy as np

a = np.arange(0, 5, 0.5)
print(a)

# 输出
# [0.  0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5]

# 生成二维的网格数据
import numpy as np

x = np.arange(-4, 4.1, 0.2)
y = np.arange(-4, 4.1, 0.2)
xx, yy = np.meshgrid(x, y)
z = np.sin(xx**2+yy**2)/(xx**2+yy**2)
print(x.shape, y.shape, xx.shape, yy.shape, z.shape)

# 输出
# (41,) (41,) (41, 41) (41, 41) (41, 41)

使用zeros和ones创建数组

numpy中还有两个常用的函数zeros()和ones(),它们分别用于创建元素全为0和1的数组,如下所示:

import numpy as np

my_zeros_array = np.zeros(5)
my_ones_array = np.ones((3,3))

print(my_zeros_array)
print(my_ones_array)

输出:

[0. 0. 0. 0. 0.]
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

在zeros()函数中,我们传递了5作为参数,这意味着我们将获得长度为5的数组,并且所有这些值都将为0。在ones()函数中,我们传递了一个2D元组(3,3),这意味着我们将获得3×3的数组,并且所有这些值都将为1。

使用fromfunction创建数组

fromfunction()是numpy的一个强大函数,可以根据一个函数从输入坐标生成一个数组。例如,下面的代码创建了一个3×3的数组,其中每个元素等于其行加其列的和:

import numpy as np

def my_function(row, col):
    return row + col

my_array = np.fromfunction(my_function, (3,3))

print(my_array)

输出:

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

在这里,我们定义了一个简单的函数,该函数接受两个参数——行和列,返回它们的和。然后,我们使用fromfunction()函数来生成一个3×3的数组,并将其传递给这个函数。

使用resize创建数组

resize()函数可以用来调整现有数组的大小。例如,下面的代码创建了一个2×2的数组,并将其调整为一个4×4的数组:

import numpy as np

my_array = np.array([[1, 2], [3, 4]])
my_array.resize((4, 4))

print(my_array)

输出:

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

在这里,我们首先创建了一个2×2的数组。然后,我们使用resize()函数将其调整为一个4×4的数组。在这个新数组中,未使用的位置被填充了0。

总结

在本文中,我们介绍了一些常见的方法,通过迭代方式构建数组。包括通过列表创建数组、使用numpy函数创建数组、使用zeros和ones创建数组、使用fromfunction创建数组以及使用resize调整数组大小。

无论您是新手还是有经验的Numpy开发人员,这些技巧都可以帮助您更好地理解如何使用迭代方式构建numpy数组,并有效地操作和处理您的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程