【深耕 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.

相关推荐
LeonDL16817 分钟前
HALCON 深度学习训练 3D 图像的几种方式优缺点
人工智能·python·深度学习·3d·halcon·halcon训练3d图像·深度学习训练3d图像
慧都小妮子1 小时前
跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用
开发语言·python·api·jxbrowser·chrome 扩展程序
tanyyinyu2 小时前
Python函数参数详解:从位置参数到灵活调用的艺术
运维·开发语言·python
qq_214782612 小时前
mac下通过anaconda安装Python
python·macos·jupyter
junyuz4 小时前
Dify docker内网部署常见问题记录
python·docker
@HNUSTer4 小时前
Python数据可视化科技图表绘制系列教程(一)
python·数据可视化·科技论文·专业制图·科研图表
reasonsummer4 小时前
【办公类-48-04】202506每月电子屏台账汇总成docx-5(问卷星下载5月范围内容,自动获取excel文件名,并转移处理)
python·excel
AmazingKO4 小时前
5分钟申请edu邮箱【方案本周有效】
python·chatgpt·ai编程·竹相左边·edu教育邮箱
幸存者1555 小时前
从零开始:亲手搭建你的第一个AI Agent(简单上手,先跑起来!)
python
点云SLAM5 小时前
Python中os模块详解
开发语言·前端·人工智能·python·计算机视觉