文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数组处理的利器:掌握Python中的NumPy库和Bash中的数组技术。

2023-09-11 20:16

关注

数组是程序设计中最常用的数据结构之一,它可以存储一系列数据,并支持对这些数据进行快速的访问和操作。在实际开发中,我们经常需要处理大量的数据,这时候,如果不使用合适的工具,处理数据就会变得非常繁琐和低效。因此,掌握一些数组处理的利器是非常必要的。本文将介绍两种常见的数组处理工具:Python中的NumPy库和Bash中的数组技术。

NumPy库

NumPy是Python中最常用的科学计算库之一,它提供了一个高效的多维数组对象ndarray,以及一些用于操作数组的函数和方法。下面我们将介绍NumPy库中一些常用的数组处理技巧。

创建数组

NumPy库提供了多种创建数组的方法,包括从Python列表、元组、range对象、文件等数据结构中创建数组。下面是一些示例代码:

import numpy as np

# 从Python列表中创建一维数组
a = np.array([1, 2, 3, 4, 5])

# 从Python列表中创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])

# 从元组中创建一维数组
c = np.array((1, 2, 3, 4, 5))

# 从range对象中创建一维数组
d = np.array(range(1, 6))

# 从文件中读取数据创建数组
e = np.loadtxt("data.txt")

数组的基本操作

NumPy库提供了一系列操作数组的函数和方法,包括对数组进行索引、切片、重塑、拼接等操作。下面是一些示例代码:

import numpy as np

# 一维数组的索引和切片
a = np.array([1, 2, 3, 4, 5])
print(a[0])     # 输出第一个元素
print(a[-1])    # 输出最后一个元素
print(a[:3])    # 输出前三个元素
print(a[2:])    # 输出从第三个元素到最后一个元素

# 二维数组的索引和切片
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b[0, 0])      # 输出第一个元素
print(b[1, -1])     # 输出最后一个元素
print(b[:, :2])     # 输出前两列
print(b[1, :])      # 输出第二行

# 数组的重塑
c = np.array(range(1, 10))
c = c.reshape(3, 3)
print(c)

# 数组的拼接
d1 = np.array([1, 2, 3])
d2 = np.array([4, 5, 6])
d = np.concatenate([d1, d2])
print(d)

数组的运算

NumPy库提供了一系列对数组进行数学运算的函数和方法,包括加减乘除、求和、平均值、标准差等。下面是一些示例代码:

import numpy as np

# 加减乘除
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)        # 输出 [5 7 9]
print(a - b)        # 输出 [-3 -3 -3]
print(a * b)        # 输出 [ 4 10 18]
print(b / a)        # 输出 [4.  2.5 2. ]

# 求和、平均值、标准差
c = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(c))                # 输出 21
print(np.sum(c, axis=0))        # 输出 [5 7 9]
print(np.sum(c, axis=1))        # 输出 [ 6 15]
print(np.mean(c))               # 输出 3.5
print(np.mean(c, axis=0))       # 输出 [2.5 3.5 4.5]
print(np.std(c))                # 输出 1.707825127659933

Bash中的数组技术

除了Python中的NumPy库,Bash中也提供了一些数组处理的技术。Bash中的数组是一种特殊的变量类型,可以存储多个值,并支持对这些值进行访问和操作。下面我们将介绍Bash中一些常用的数组处理技巧。

创建数组

Bash中的数组可以通过多种方式创建,包括直接赋值、从命令输出中获取、从文件中读取等。下面是一些示例代码:

# 直接赋值创建数组
a=(1 2 3 4 5)

# 从命令输出中获取创建数组
b=( $(ls) )

# 从文件中读取创建数组
c=( $(cat data.txt) )

数组的基本操作

Bash中的数组支持多种基本操作,包括对数组进行索引、切片、追加、删除等。下面是一些示例代码:

# 数组的索引和切片
a=(1 2 3 4 5)
echo ${a[0]}        # 输出第一个元素
echo ${a[-1]}       # 输出最后一个元素
echo ${a[@]:0:3}    # 输出前三个元素
echo ${a[@]:2}      # 输出从第三个元素到最后一个元素

# 数组的追加
b=(1 2 3)
b+=(4 5 6)
echo ${b[@]}        # 输出 1 2 3 4 5 6

# 数组的删除
c=(1 2 3 4 5)
unset c[2]
echo ${c[@]}        # 输出 1 2 4 5

数组的运算

Bash中的数组也支持多种运算,包括加减乘除、求和、平均值、标准差等。下面是一些示例代码:

# 加减乘除
a=(1 2 3)
b=(4 5 6)
for ((i=0; i<${#a[@]}; i++))
do
    c[$i]=$((${a[$i]} + ${b[$i]}))
done
echo ${c[@]}        # 输出 5 7 9

# 求和、平均值、标准差
d=(1 2 3 4 5)
sum=0
for i in ${d[@]}
do
    sum=$(($sum + $i))
done
echo $sum           # 输出 15

mean=$(echo "scale=2; $sum / ${#d[@]}" | bc)
echo $mean          # 输出 3.00

sum=0
for i in ${d[@]}
do
    sum=$(echo "scale=2; $sum + ($i - $mean)^2" | bc)
done
std=$(echo "scale=2; sqrt($sum / ${#d[@]})" | bc)
echo $std           # 输出 1.41

总结

本文介绍了两种常见的数组处理工具:Python中的NumPy库和Bash中的数组技术。NumPy库提供了一个高效的多维数组对象ndarray,以及一些用于操作数组的函数和方法;Bash中的数组是一种特殊的变量类型,可以存储多个值,并支持对这些值进行访问和操作。掌握这些数组处理的利器,可以大大提高程序开发的效率和质量。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯