Python list与NumPy array 区分详解

yizhihongxing

Python list 与 NumPy array 区分详解

Python中的列表(list)和NumPy中的数组(array)都是常用的数据结构,但它们之间有很多区别。本文将详细讲解Python list与NumPy array的区别。

Python list

Python中的列表是一种可变的有序序列,可以存储任意数量的任意类型的数据。列表使用方括号[]来表示,其中的元素逗号分隔。下面是一个简单的列表示例:

my_list = [1, 2, 3, 'hello', 'world']

Python list的基本操作

  1. 访问列表元素

使用下标访问列表中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:

print(my_list[0])    # 输出:1
  1. 列表元素

可以使用下标来修改列表中的元素。例如,要将上面示例中的第元素修改为10,可以使用以下:

my_list[0] = 10
print(my_list)    # 输出:[10, 2, 3, 'hello', 'world']
  1. 列表切片可以使用切片来获取列表的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_list[0:3])    # 输出:[10, 2, 3]
  1. 列表拼接

可以使用加号+来将两个拼接成一个新的列表。例如,要将上面示例中的列表和另一个列表[4, 5, 6]拼接起来,使用以下代码:

new_list = my_list + [4, 5, 6]
print(new_list)    # 输出:[10, 2, 3, 'hello', 'world', 4, 5,6]
`

5. 列表重复

可以使用乘号*来将一个列表重复多次。例如,要将上面示例中的列表重复3次,可以使用以下代码:

```python
new_list = my_list * 3
print(new_list)    # 输出:[10, 2, 3, 'hello', 'world', 10, 2, 3, 'hello', 'world', 10, 2, 3, '', 'world']
  1. 列表长度

可以使用len()函数来获取列表的长度。例如,要获取上面示例中的列表的长度,可以使用以下代码:

print(len(my_list))    # 输出5

Python list的高级操作

  1. 列表排序

可以使用sort()方法对列表进行排序。例如,要对一个包含数字的列表进行排序,可以使用以下代码:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)    # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
  1. 列表反转

可以reverse()方法将列表中的元素反转。例如,要将上面示例中的列表反转,可以使用以下代码:

my_list.reverse()
print(my_list)    输出:[5, 3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
  1. 列表删除元素

可以使用del语句或remove()方法来删除列表中的元素。例如,要删除上面示例中的第一个元素,可以使用以下代码:

del my_list[0]
print(my_list)    输出:[3, 5, 6, 2, 9, 5, 4, 1, 4, 3]
  1. 列表插入元素

可以使用insert()方法在列表中插入元素。例如,要在上面示例中的第一个位置插入一个元素10,可以使用以下代码:

my_list.insert(0, 10)
print(my_list)    # 输出:[10, 3, 5, 6, 2, 9, 5, 4, 1, 4, 3]

NumPy array

NumPy是Python中的一个科学计算库,它提供了高性能的多维数组对象和相关的计算工具。NumPy中的数组(array)是一种固定大小的、可变类型的序列,可以存储任意数量的任意类型的数据。NumPy中的数组使用array()函数来创建,其中的元素逗号分隔。下面是一个简单的数组示例:

import numpy as np

my_array = np.array([1, 2, 3, 4, 5])

NumPy array的基本操作

  1. 访问数组元素

使用下标访问数组中的元素,下标从0开始。例如,要访问上面示例中的第一个元素,可以使用以下代码:

print(my_array[0])    # 输出:1
  1. 数组元素

可以使用下标来修改数组中的元素。例如,要将上面示例中的第一个元素修改为10,可以使用以下:

my_array[0] = 10
print(my_array)    # 输出:[10, 2, 3, 4, 5]
  1. 数组切片可以使用切片来获取数组的子集。切片使用[start:end]的形式表示,其中start表示起始下标,end表示结束下标(不包含)。例如,要获取上面示例中的前三个元素,可以使用以下代码:
print(my_array[0:3])    # 输出:[10, 2, 3]
  1. 数组拼接

可以使用concatenate()函数将两个数组拼接成一个新的数组。例如,要将上面示例中的数组和另一个数组[6, 7, 8]拼接起来,使用以下代码:

new_array = np.concatenate((my_array, [6, 7, 8]))
print(new_array)    # 输出:[10, 2, 3, 4, 5, 6, 7, 8]
  1. 数组重复

可以使用repeat()函数将一个数组重复多次。例如,要将上面示例中的数组重复3次,可以使用以下代码:

new_array = np.repeat(my_array, 3)
print(new_array)    # 输出:[10, 10, 10, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]
  1. 数组长度

可以使用shape属性来获取数组的长度。例如,要获取上面示例中的数组的长度,可以使用以下代码:

print(my_array.shape)    # 输出(5,)

NumPy array的高级操作

  1. 数组排序

可以使用sort()函数对数组进行。例如,要对一个包含数字的数组进行排序,可以使用以下代码:

my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
my_array.sort()
print(my_array)    # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
  1. 数组反转

可以使用flip()函数将数组中的元素反转。例如,要将上面示例中的数组反转,可以使用以下代码:

my_array = np.flip(my_array)
print(my_array)    # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
  1. 数组删除元素

可以使用delete()函数来删除数组中的元素。例如,要删除上面示例中的第一个元素,可以使用以下代码:

my_array = np.delete(my_array, 0)
print(my_array)    # 输出:[6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
  1. 数组插入元素

可以使用insert()函数在数组中插入元素。例如,要在上面示例中的第一个位置插入一个元素10,可以使用以下代码:

my_array = np.insert(my_array, 0, 10)
print(my_array)    # 输出:[10, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

Python list与NumPy array的区别

  1. 数据类型

Python list可以存储任意类型的数据,而NumPy array只能存储相同类型的数据。

  1. 内存占用

Python list中的元素是对象,每个对象都包含了类型信息、引用计数和其他信息,因此Python list的内存占用比NumPy array要大得多。

  1. 访问速度

由于Python list中的元素是对象,因此访问速度比NumPy array要慢得多。而NumPy array中的元素是连续存储的,因此访问速度非常快。

  1. 数学运算

NumPy array支持向量化运算,可以对整个数组进行数学运算,而Python list需要使用循环来实现。

示例说明

下面是示例,演示如何使用Python list和NumPy array:

import numpy as np

# 定义一个列表
my_list = [1, 2, 3, 4, 5]

# 定义一个数组
my_array = np.array([1, 2, 3, 4, 5])

# 访问列表和数组中的元素
print(my_list[0])    # 输出:1
print(my_array[0])    # 输出:1

# 列表和数组切片
print(my_list[0:3])    # 输出:[1, 2, 3]
print(my_array[0:3])    # 输出:[1, 2, 3]

# 列表和数组拼接
new_list = my_list + [6, 7, 8]
new_array = np.concatenate((my_array, [6, 7, 8]))
print(new_list)    # 输出:[1, 2, 3, 4, 5, 6, 7, 8]
print(new_array)    # 输出:[1, 2, 3, 4, 5, 6, 7, 8]

# 列表和数组重复
new_list = my_list * 3
new_array = np.repeat(my_array, 3)
print(new_list)    # 输出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(new_array)    # 输出:[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]

# 列表和数组长度
print(len(my_list))    # 输出:5
print(my_array.shape)    # 输出:(5,)

在这个示例中,我们首先定义了一个列表my_list和一个数组my_array。然后演示了如何访问列表和数组中的元素、如何使用切片获取子集、如何使用加号+拼列表和数组、如何使用乘号*重复列表和数组、以及如何使用len()函数获取列表的长度和shape属性获取数组的长度。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python list与NumPy array 区分详解 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 利用python实现平稳时间序列的建模方式

    建模平稳时间序列的方式有很多种,下面给大家介绍一种基于Python的建模方式。 准备数据 首先,我们需要准备平稳时间序列的数据。时间序列数据通常以CSV格式存储,可以使用Pandas库读取数据: import pandas as pd data = pd.read_csv(‘data.csv’, index_col=’date’, parse_dates=T…

    python 2023年6月2日
    00
  • Python实现自动登录百度空间的方法

    下面是详细讲解“Python实现自动登录百度空间的方法”的完整攻略。 简介 本文将介绍如何使用Python实现自动登录百度空间的方法。通过编写Python脚本,我们可以模拟浏览器的登录行为,实现自动登录百度空间的功能。这样可以方便我们进行数据采集、爬虫等行为,提高工作效率。 实现步骤 1. 安装第三方库 在Python中实现自动登录百度空间需要使用第三方库,…

    python 2023年5月19日
    00
  • python http基本验证方法

    Python HTTP 基本验证方法 HTTP 基本验证是一种通过用户名和密码限制访问目标资源的安全机制。在 Python 中,我们可以使用 http.client 模块进行基本验证。该模块提供了一个名为 HTTPBasicAuthHandler 的认证处理器类,可以用于创建验证对象。 步骤 导入必要的模块:http.client、urllib.parse …

    python 2023年6月3日
    00
  • Python使用Excel将数据写入多个sheet

    下面是Python使用Excel将数据写入多个sheet的完整实例教程。 环境准备 我们需要安装 openpyxl 库,它是一个用于读写Excel文件的Python模块,可以通过以下命令进行安装: pip install openpyxl 实例说明1 假设我们有一个学生成绩表格,其中有三个学科:语文、数学、英语,现在我们要将学生成绩按照不同学科写入不同的sh…

    python 2023年5月13日
    00
  • python逐行读取文件内容的三种方法

    当我们需要处理大型文件时,可能会需要逐行读取文件的内容。Python为我们提供了多种读取文件的方式,以下是Python逐行读取文件内容的三种方法: 1. 使用for循环逐行读取文件内容 with open(‘file.txt’, ‘r’) as f: for line in f: print(line.strip()) 这种方法会一次读取一行,每次循环会返回…

    python 2023年6月5日
    00
  • 对Python的多进程锁的使用方法详解

    对Python的多进程锁的使用方法详解 什么是多进程锁 多进程锁(multiprocessing.Lock())是Python中的一种同步原语,用于协调并发进程对共享资源的访问。当多个进程同时运行时,可能会导致对共享数据的竞争,使用多进程锁可以避免这种情况发生。 多进程锁的使用方法 使用多进程锁需要以下步骤: 导入multiprocessing模块; 创建一…

    python 2023年6月6日
    00
  • 使用python打印十行杨辉三角过程详解

    下面我将详细讲解使用Python打印十行杨辉三角的过程。 什么是杨辉三角 杨辉三角,又称帕斯卡三角形,是二项式系数在三角形中的一种几何排列,如下所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 杨辉三角的基本性质是:每行端点与结尾的数为1,其余数等于上一行相邻两数之和。 思路分析…

    python 2023年6月5日
    00
  • python笔试题(附带答案)

    下面是关于“python笔试题(附带答案)”的详细攻略。 1. 确认题目类型 在开始答题之前,先要确认题目类型。一般来说,Python笔试题可以分为以下几类: 纯理论题型。例如Python语法、数据类型、操作符、类、模块等内容的基础理论知识考查。 综合实战题型。例如读取文件、处理数据、网络编程、爬虫等综合应用实战题目。 编码题型。在规定时间内完成一定的编程任…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部