【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

关于数据科学环境的建立,可以参考我的博客:【深耕 Python】Data Science with Python 数据科学(1)环境搭建

Jupyter代码片段1:简单数组的定义和排序

python 复制代码
import numpy as np
np.array([1, 2, 3])
a = np.array([9, 6, 2, 4, 3, 1])
print(len(a))
a.sort()
print(a)
a

输出结果:

Jupyter代码片段2:范围数组

python 复制代码
r = range(17)
print(r)
print(list(r))
a = np.arange(17)
a

输出结果:

Jupyter代码片段3:对数组的整体操作

python 复制代码
print([3 * i for i in r])
print(3 * a)
a ** 2

输出结果:

Jupyter代码片段4:numpy vs 循环用时比较

python 复制代码
import timeit
t1 = timeit.timeit("[i ** 2 for i in range(50)]")
t2 = timeit.timeit("import numpy as np; np.arange(50) ** 2")
t1, t2, t1 / t2

输出结果:

优化的底层原理: NumPy将循环语句使用C语言进行优化(Python本即用C语言写成)。

进一步比较2者的速度差异

python 复制代码
%%timeit
[i ** 2 for i in range(1000)]
python 复制代码
%%timeit
np.arange(1000) ** 2

输出#1:96 µs ± 5.32 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

输出#2:4.04 µs ± 413 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

这样,二者运算速度的区别就一目了然了。

Jupyter代码片段5:高维数组及其子数组

python 复制代码
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(a.shape)
print(a[0, :])
print(a[:, 0])
A = a[0:2, 0:2]
print(A)
A = a[:2, :2]
A

输出结果:

Jupyter代码片段6:二维数组(矩阵)的求逆

python 复制代码
Ainv = np.linalg.inv(A)
print(Ainv)
print(A + Ainv)
print(A * Ainv)
print(A @ Ainv)
print(np.matmul(A, Ainv))

输出结果:

注意: (2阶)单位阵处的浮点误差。

Jupyter代码片段7:数组(矩阵)的重构

python 复制代码
a = np.arange(16)
print(a.reshape((2, 8)))
print(a)
b = a.reshape((4, 4))
print(b)
a.reshape((-1, 2))

输出结果:

注意(小坑点): 使用a.reshape()并不会改变a本身,需要结合赋值语句来使用。

参考文献 Reference

Learn Enough PYTHON to be Dangerous: Software Development, Flask Web Apps, and Beginning Data Science with Python, Michael Hartl, Pearson, 2023.

相关推荐
xiaohouzi11223321 分钟前
Python读取视频-硬解和软解
python·opencv·ffmpeg·视频编解码·gstreamer
念念不忘 必有回响25 分钟前
Pygame模块化实战:从零构建Aliens射击游戏全流程(一)
python·游戏·pygame
☼←安于亥时→❦7 小时前
PyTorch 梯度与微积分
人工智能·pytorch·python
程序员三藏8 小时前
2025最新的软件测试面试八股文(800+道题)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
Pocker_Spades_A8 小时前
Python快速入门专业版(二十三):for循环基础:遍历字符串、列表与range()函数(计数案例)
python
闲人编程8 小时前
图像去雾算法:从物理模型到深度学习实现
图像处理·人工智能·python·深度学习·算法·计算机视觉·去雾
Kyln.Wu10 小时前
【python实用小脚本-211】[硬件互联] 桌面壁纸×Python梦幻联动|用10行代码实现“开机盲盒”自动化改造实录(建议收藏)
开发语言·python·自动化
Ms_Big10 小时前
ppliteseg改rknn,部署在嵌入式板,加速模型
人工智能·python·深度学习
折翼的恶魔11 小时前
数据分析:合并
python·数据分析·pandas
百锦再11 小时前
在 CentOS 系统上实现定时执行 Python 邮件发送任务
java·linux·开发语言·人工智能·python·centos·pygame