返回
使用 List 创建 Numpy 数组
后端
2024-02-04 17:21:36
前言
在上一篇文章中,我们介绍了 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() 函数。这三种方法各有优缺点,大家可以根据自己的需要选择使用。