返回

使用 List 创建 Numpy 数组

后端

前言

在上一篇文章中,我们介绍了 Numpy 数组的基本概念和创建方法。在本文中,我们将重点介绍如何使用 List 创建 Numpy 数组。

使用内置函数 array() 创建数组

Numpy 提供了一个内置函数 array(),可以将一个 List 转换为 Numpy 数组。语法如下:

array(object, dtype=None, copy=True, order='K', subok=True, ndmin=0)

其中,object 是要转换的 List 或其他对象;dtype 是要创建的数组的数据类型;copy 表示是否复制 List 中的数据;order 表示数组的存储顺序,可以是 'C'(按行存储)或 'F'(按列存储);subok 表示是否允许子数组;ndmin 表示创建的数组的最小维度。

例如,我们可以使用 array() 函数将一个 List 转换为 Numpy 数组:

import numpy as np

list1 = [1, 2, 3, 4, 5]
array1 = np.array(list1)

print(array1)
# 输出:[1 2 3 4 5]

使用列表推导创建数组

除了使用 array() 函数,我们还可以使用列表推导来创建 Numpy 数组。语法如下:

[expression for item in iterable]

其中,expression 是要创建的数组的元素;item 是 iterable 中的元素;iterable 是要遍历的可迭代对象。

例如,我们可以使用列表推导来创建一个小数点表示的 Numpy 数组:

import numpy as np

array2 = np.array([float(i) / 10 for i in range(1, 11)])

print(array2)
# 输出:[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]

使用 Numpy 的 fromiter() 函数创建数组

Numpy 还提供了一个 fromiter() 函数,可以将一个迭代器转换为 Numpy 数组。语法如下:

fromiter(iterable, dtype, count=-1)

其中,iterable 是要转换的迭代器;dtype 是要创建的数组的数据类型;count 是要创建的数组的元素数量。

例如,我们可以使用 fromiter() 函数将一个生成器转换为 Numpy 数组:

import numpy as np

def generate_numbers():
    for i in range(1, 11):
        yield i

array3 = np.fromiter(generate_numbers(), dtype=np.int32)

print(array3)
# 输出:[1 2 3 4 5 6 7 8 9 10]

总结

在本文中,我们介绍了三种使用 List 创建 Numpy 数组的方法:使用内置函数 array()、使用列表推导和使用 Numpy 的 fromiter() 函数。这三种方法各有优缺点,大家可以根据自己的需要选择使用。