在 Python 中将数组的前 N 个元素设置为零
使用列表切片将数组的前 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
我们正在尝试将单个 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 数组转换为列表。
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
将 NumPy 数组转换为 Pandas DataFrame
发布时间:2024/04/21 浏览次数:111 分类:Python
-
本教程介绍了如何使用 pandas.DataFrame()方法从 NumPy 数组生成 Pandas DataFrame。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Pandas Dataframe 转换为 NumPy 数组
发布时间:2024/04/20 浏览次数:176 分类:Python
-
本教程介绍如何将 Pandas Dataframe 转换为 NumPy 数组的方法,例如 to_numpy,value 和 to_records