迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中将数组的前 N 个元素设置为零

作者:迹忆客 最近更新:2023/01/26 浏览次数:

使用列表切片将数组的前 N 个元素设置为零,例如 a_list[:n] = [0] * n

切片赋值通过用 0 值的切片替换原始数组中的切片,将数组的前 N 个元素设置为零。

import numpy as np

# ✅ 将 Python 列表的前 N 个元素设置为 0

a_list = [8, 1, 2, 3, 4, 5, 6, 7]

n = 3

a_list[:n] = [0] * n

print(a_list)  # 👉️ [0, 0, 0, 3, 4, 5, 6, 7]

# ---------------------------------------------

# ✅ 将 Numpy 数组的前 N 个元素设置为 0


arr = np.array([8, 1, 2, 3, 4, 5, 6, 7])

n = 3

arr[:n] = 0

print(arr)  # 👉️ [0 0 0 3 4 5 6 7]

第一个示例展示了如何将原生 Python 列表的前 N 个元素设置为 0。

a_list = [8, 1, 2, 3, 4, 5, 6, 7]

n = 3

a_list[:n] = [0] * n

print(a_list)  # 👉️ [0, 0, 0, 3, 4, 5, 6, 7]

我们使用列表切片赋值将列表的前 N 个元素设置为 0。

列表切片的语法是 my_list[start:stop:step]

start 索引是包含的,stop 索引是排他的(直到,但不包括)。

如果省略起始索引,则认为它为 0,如果省略停止索引,则切片转到列表的末尾。

Python 索引是从零开始的,因此列表中的第一项的索引为 0,最后一项的索引为 -1 或 len(my_list) - 1

切片 a_list[:n] 从索引 0 开始并上升到但不包括索引 n。

我们使用乘法运算符在赋值的右侧创建了一个包含 N 个零值的列表。

a_list = [8, 1, 2, 3, 4, 5, 6, 7]

n = 3

a_list[:n] = [0] * n

print(a_list)  # 👉️ [0, 0, 0, 3, 4, 5, 6, 7]

当乘法 (*) 运算符与列表和整数一起使用时,它会将列表中的项目重复 N 次。

print([0] * 2)  # 👉️ [0, 0]
print([0] * 3)  # 👉️ [0, 0, 0]

整个语句将列表的前 N 个元素的一部分替换为包含 N 个零的新列表。

如果你有一个 numpy 数组,你可以直接给数组的前 N 个元素赋一个零。

import numpy as np


arr = np.array([8, 1, 2, 3, 4, 5, 6, 7])

n = 3

arr[:n] = 0

print(arr)  # 👉️ [0 0 0 3 4 5 6 7]

我们可以通过从终端运行以下命令来安装 numpy

$ pip install numpy
$ pip3 install numpy

我们可以直接为 numpy 数组中的多个元素分配一个零。

请注意 ,在使用本机 Python 列表时,这不是有效语法。

以下代码示例引发 TypeError 异常。

a_list = [8, 1, 2, 3, 4, 5, 6, 7]

n = 3

# ⛔️ TypeError: can only assign an iterable
a_list[:n] = 0

Python 中 TypeError can only assign an iterable

我们正在尝试将单个 0 分配给列表的一个切片(多个项目)。

这仅适用于 numpy 数组,不适用于本机 Python 列表。

我们还可以像我们在上一个示例中所做的那样,将 numpy 数组中的前 N 个元素替换为包含 N 个零的列表。

import numpy as np

arr = np.array([8, 1, 2, 3, 4, 5, 6, 7])

n = 3

arr[:n] = [0] * n

print(arr)  # 👉️ [0 0 0 3 4 5 6 7]

代码示例通过将切片替换为包含 N 个零值的切片,将 numpy 数组的前 N 个元素设置为 0。

如果需要将 numpy 数组转换为本机 Python 列表,可以使用 tolist() 方法。

import numpy as np

arr = np.array([8, 1, 2, 3, 4, 5, 6, 7])

n = 3

arr[:n] = [0] * n

print(arr)  # 👉️ [0 0 0 3 4 5 6 7]

a_list = arr.tolist()
print(a_list)  # 👉️ [0, 0, 0, 3, 4, 5, 6, 7]

tolist() 方法将 numpy 数组转换为列表。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中获取字符数组的长度

发布时间:2023/05/07 浏览次数:166 分类:C语言

本文演示了如何在 C 语言中获取一个 char 数组的长度。使用 sizeof 运算符来查找字符数组的长度 数组的大小可以用 sizeof 运算符计算,而不考虑元素的数据类型。

在 C 语言中初始化字符数组

发布时间:2023/05/07 浏览次数:158 分类:C语言

本文介绍了如何在 C 语言中初始化字符数组。使用 {} 卷曲括号列表符号在 C 语言中初始化一个字符数组

C 语言中复制字符数组

发布时间:2023/05/07 浏览次数:117 分类:C语言

本文介绍了如何在 C 语言中复制字符数组。使用 memcpy 函数在 C 语言中复制一个字符数组 char 数组可能是 C 代码中最常用的数据结构,复制数组内容是它的核心操作之一。

Django ArrayField 数组字段

发布时间:2023/05/04 浏览次数:168 分类:Python

在本文中,我们将学习在 Django 数据库模型中使用 ArrayFields。Django中的ArrayField类似于Java、C、C++等其他编程语言中的数组数据结构,存储相同数据类型的多个值。

计算 Java 数组中的重复元素

发布时间:2023/05/01 浏览次数:202 分类:Java

本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。

Python for 循环中的下一项

发布时间:2023/04/26 浏览次数:179 分类:Python

本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。

Python While 循环用户输入

发布时间:2023/04/26 浏览次数:148 分类:Python

我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。

Python 中的整数规划

发布时间:2023/04/26 浏览次数:193 分类:Python

本文介绍了整数规划和可用于解决混合整数规划问题的 Python 工具。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便