迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便