用numpy如何创建一个空数组?

简介: 最近在用numpy过程中,总会不自觉的需要创建空数组,虽然这并不是一个明智的做法,但终究是可能存在这种需求的。本文简单记录3种用numpy生成空数组的方式。

最近在用numpy过程中,总会不自觉的需要创建空数组,虽然这并不是一个明智的做法,但终究是可能存在这种需求的。本文简单记录3种用numpy生成空数组的方式。


640.png

我们的目标是创建一个指定列数、但空无一行的空数组。


00 关于np.empty


首先,numpy有一个"空数组"函数:np.empty(),虽然名字叫empty,但结果可能并不是我们想要的那种:


640.png


实际上,empty之空,空在其值,而非其形。也就说,它只是用于创造一个给定形状、但未初始化实体的数组。例如:


640.png


那么,如果我们需要创建一个没有任何值的数组呢?这里以生成0行3列的空数组为例,笔者想到了3种方案。。


01 numpy指定形状为0


实际上,empty生成的数组当然可以为空,只要我们指定了相应的形状。例如,如果我们传入数组的形状参数为(0,3),则可以生成目标空数组:


640.png


所以,生成的数组是否为空,不在于你用的是不是empty,而在于传入的形状参数。当然, 这里的empty换成ones或者zeros也都可以,只要形状是(0, 3)即可。


02 利用空列表创建


初始化numpy数组的一种方式是由列表创建,那么当我们传入的列表是空列表时即可创建空数组。特别的,为了创建指定列数的空列表,我们需要传入指定个数的嵌套空列表,然后转置即可。


640.png


03 利用pandas转换生成


numpy和pandas是一对好搭档,常常需要对二者数据进行转换,在创建空数组时自然也可以。为了创建一个空数组,我们可以首先考虑先创建一个空的DataFrame,然后由其转换为numpy对象即实现了创建空数组。


首先,我们创建一个仅有列名、而没有索引和值的空DataFrame:


640.png

进而,可由该DataFrame对象转化为空数组:

640.png

可能多数情况下并不需要创建空数组,甚至存在更好的替代办法,但就事论事的讲,这些也都不失为一个丰富numpy姿势的小技巧。


640.png


目录
相关文章
|
17天前
|
存储 索引 Python
一文掌握python数组numpy的全部用法(零基础学python(二))
一文掌握python数组numpy的全部用法(零基础学python(二))
39 0
|
10天前
|
搜索推荐 索引 Python
【科学计算包NumPy】NumPy数组的基本操作
【科学计算包NumPy】NumPy数组的基本操作
32 3
|
10天前
|
机器学习/深度学习 开发者 Python
【科学计算包NumPy】NumPy数组的创建
【科学计算包NumPy】NumPy数组的创建
30 4
|
15天前
|
索引 Python
NumPy 分割与搜索数组详解
NumPy 的 `np.array_split()` 函数用于分割数组。基本语法是 `np.array_split(array, indices_or_sections, axis=None)`,它接受一个 NumPy 数组和分割参数,按指定轴进行分割。示例:将 `[1, 2, 3, 4, 5, 6]` 分割成 3 个子数组,结果是 `[[1, 2], [3, 4], [5, 6]]`。注意,超出数组范围的分割位置会导致异常,且元素数量可能根据需要调整。`np.array_split()` 返回子数组的列表。可以按列分割、使用掩码或不均匀分割。练习:将 `arr = [1, 2, 3, 4,
35 0
|
17天前
|
索引 Python
NumPy 数组迭代与合并详解
NumPy 数组迭代包括基本和高级方法。使用 `for` 循环可迭代一维、二维及多维数组。`np.nditer()` 提供更多控制,如迭代顺序、过滤、类型转换和步长。`np.ndenumerate()` 返回元素及其索引。练习涉及合并数组操作。
15 0
|
17天前
|
Python
NumPy 数组复制与视图详解
NumPy 的复制和视图用于创建新数组。复制创建独立于原数组的新数组,如 `arr.copy()`、`np.array(arr)` 和 `arr[:]`。视图则是原始数组的引用,修改会影响原数组,如 `arr.view()`、切片和 `arr.reshape()`。使用 `arr.base` 可检查数组是否为视图。练习:创建数组 `arr` 并用三种方法创建副本,验证它们是否独立。
32 0
NumPy 数组复制与视图详解
|
17天前
|
存储 索引 Python
NumPy 数组切片及数据类型介绍
了解 NumPy 数组切片,用于从数组中提取子集。一维数组切片使用 `start:end:step`,如 `arr[1:5]`。二维数组切片如 `arr[1:3, 0:3]`。创建 5x5 数组并练习切片,例如打印第一行、第二列、对角线元素和 2x2 子数组。别忘了检查数据类型,如 `arr.dtype`,并使用 `astype()` 转换类型。
29 0
|
17天前
|
存储 索引 Python
NumPy 数组创建方法与索引访问详解
NumPy 的 `ndarray` 是其核心数据结构,可通过 `array()`、`zeros()`、`ones()` 和 `empty()` 函数创建。`array()` 可以将列表等转换为数组;`zeros()` 和 `ones()` 生成全零或全一数组;`empty()` 创建未定义值的数组。此外,还有 `arange()`、`linspace()`、`eye()` 和 `diag()` 等特殊函数。练习包括使用这些函数创建特定数组。
120 1
|
17天前
|
存储 数据挖掘 API
【NumPy基础】- Numpy数组和矢量计算
【NumPy基础】- Numpy数组和矢量计算
|
17天前
|
机器学习/深度学习 测试技术 数据处理
Numpy Tile:数组复制的艺术与效率之键
【4月更文挑战第21天】
22 0