python中的数组(Array)

简介: python中的数组(Array)

python中的数组(Array

在Python中,数组(Array)是一种有序的数据集合,用于存储固定数量的相同类型的元素。数组是一个连续的内存空间,可以按照索引访问和修改每个元素。

特点:

  1. 数组中的元素具有相同的数据类型,可以是数字、字符串或其他类型。
  2. 数组的大小是固定的,一旦创建,其长度不能改变。
  3. 可以通过索引值来访问和修改数组中的元素。
  4. 数组中的元素在内存中是连续存储的。

创建数组:

在Python中,可以使用第三方库 numpy 来创建和操作数组。Numpy是Python的一个强大数学和科学计算库,为高效操作多维数组提供了丰富的函数和方法。

首先需要安装 numpy 库,可以使用以下命令安装:

pip install numpy

安装完成后,就可以使用 numpy 来创建数组

import numpy as np
arr = np.array([1, 2, 3, 4, 5])  # 创建一维数组
print(arr)  # 输出: [1 2 3 4 5]
matrix = np.array([[1, 2, 3], [4, 5, 6]])  # 创建二维数组
print(matrix)
# 输出:
# [[1 2 3]
#  [4 5 6]]

访问和修改数组元素:

可以使用索引值来访问数组中的特定元素。索引值从0开始,可以是整数或切片对象。对于多维数组,可以通过逐层索引来访问和修改元素。

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0])  # 输出: 1,访问第一个元素
arr[2] = 10  # 修改第三个元素为10
print(arr)  # 输出: [ 1  2 10  4  5]
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix[0, 1])  # 输出: 2,访问第一行第二列元素
matrix[1, 2] = 7  # 修改第二行第三列元素为7
print(matrix)
# 输出:
# [[1 2 3]
#  [4 5 7]]

常用操作:

  • 数组形状:可以使用 shape 属性获取数组的形状,返回一个表示各个维度大小的元组。
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6]])
shape = matrix.shape
print(shape)  # 输出: (2, 3),表示2行3列的二维数组
  • 数组操作:Numpy提供了丰富的函数和方法来操作数组,如计算最大值、最小值、平均值,以及进行排序等。
import numpy as np
arr = np.array([5, 2, 1, 6, 4])
maximum = np.max(arr)  # 计算数组的最大值
print(maximum)  # 输出: 6
minimum = np.min(arr)  # 计算数组的最小值
print(minimum)  # 输出: 1
mean = np.mean(arr)  # 计算数组的平均值
print(mean)  # 输出: 3.6
sorted_arr = np.sort(arr)  # 对数组进行排序
print(sorted_arr)  # 输出: [1 2 4 5 6]
  • 数组切片:可以使用切片对象来获取数组的子集。切片对象由开始索引、结束索引和步长组成。
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
subset = arr[2:6]  # 获取索引2到5(不包括6)的子集
print(subset)  # 输出: [2 3 4 5]
reversed_arr = arr[::-1]  # 将数组逆序
print(reversed_arr)  # 输出: [9 8 7 6 5 4 3 2 1 0]

以上是关于Python中数组的详细讲解。数组是一种常见的数据结构,用于存储和处理大量相同类型的数据。借助第三方库 numpy,我们可以高效地创建、访问和操作数组,从而方便地进行数值计算和科学运算。

相关文章
|
2月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
346 0
|
5月前
|
测试技术 PHP 开发者
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
|
9月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList<>()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
641 1
Java 中数组Array和列表List的转换
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
253 67
|
9月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
供应链 JavaScript 前端开发
通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
array.every()可以用来数据验证、权限检查、一致性检查等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
Web App开发 存储 前端开发
别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
这类问题的重点在于能不能突破基础思路,突破基础思路是从程序员入门变成中级甚至高级的第一步,如果所有需求都通过最基础的业务逻辑来做,是得不到成长的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
9月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
385 5

推荐镜像

更多