Numpy多维数组高效创建与特性解析
161 浏览量
更新于2024-08-29
收藏 363KB PDF 举报
Numpy是一个在Python中广泛应用的高性能数值计算库,它特别适合处理向量、矩阵和张量数据。该库是由C和Fortran编写的,这使得在进行大量数值运算时,其性能远超纯Python代码,因为它们能利用底层的优化和并行计算能力。
模块的导入是使用numpy的基础,首先需要导入matplotlib进行可视化,以及numpy库本身,这样可以直接使用其中的各种功能。例如:
```python
%matplotlib inline
import matplotlib.pyplot as plt
from numpy import *
```
Numpy数组的创建方式多样,包括从Python列表或元组初始化,使用函数如`arange`或`linspace`生成等差或等分序列,以及从文件(如pickle格式)读取数据。比如,创建一维和二维数组:
```python
v = array([1, 2, 3, 4]) # 一维数组
M = array([[1, 2], [3, 4]]) # 二维数组
print(type(v), type(M)) # 输出:<class 'numpy.ndarray'> <class 'numpy.ndarray'>
```
Numpy数组与Python列表的主要区别在于维度、形状、大小和类型。`ndarray.shape`返回数组的维度信息,而`ndarray.size`给出元素总数。例如:
```python
print(v.shape) # 输出:(4,)
print(M.shape) # 输出:(2, 2)
M.size # 输出:4
```
Numpy数组具有固定的类型,这意味着在创建时就已经确定,不像Python列表那样动态类型。这使得Numpy数组在内存使用上更加高效,并且支持高效的数学运算,这些操作在编译时就已经完成,而不是每次运行时都进行解释。
通过`ndarray.dtype`属性,我们可以查看数组的数据类型,如对于矩阵M:
```python
print(M.dtype) # 输出:<class 'numpy.int64'>
```
尝试用非对应类型赋值会引发错误,例如将字符串赋给整数位置:
```python
M[0, 0] = "hello" # 这将导致TypeError: cannot assign complex values to a real array
```
如果需要,我们还可以在创建数组时指定数据类型,例如创建复数数组:
```python
M = array([[1, 2], [3, 4]], dtype=complex)
print(M) # 输出:[[1.+0.j 2.+0.j]
# [3.+0.j 4.+0.j]]
```
Numpy通过提供静态类型化和高效计算功能,显著提升了Python在处理数值数据时的性能,特别是在科学计算、数据分析和机器学习等领域。同时,与Python列表相比,Numpy数组的使用也更为直观和方便。
2020-12-20 上传
2022-12-01 上传
点击了解资源详情
2024-11-07 上传
2020-09-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38620314
- 粉丝: 1
- 资源: 913
最新资源
- ghaction-publish-ghpages:将内容发布到GitHub Pages
- HTML5 Video Speed Control-crx插件
- 人工智能实验2020年秋季学期.zip
- PyPI 官网下载 | vector_quantize_pytorch-0.4.0-py3-none-any.whl
- form:将您的Angular2 +表单状态保留在Redux中
- Tensorflow_practice:딥러닝,머신러닝
- Dijkstra.rar_matlab例程_matlab_
- 任何点复选框
- 人工智能写诗.zip
- Parstagram:使用私有存储服务器模仿Instagram
- mod-1白板挑战牌卡片sgharms测试webdev资金
- Slack Panels-crx插件
- PyPI 官网下载 | vectorian-0.9.2-cp38-cp38-macosx_10_9_x86_64.whl
- react-card-component:React卡组件Libaray
- 人工智能与实践 bilibili.zip
- Architecture-Website