Numpy优点
- 拥有强大的N维数组对象
- 复杂的广播功能
- 集成的C/C++和Fortran代码工具
- 有线性代数、傅里叶变换和随机数功能
- 通用数据的高效容器,可以定义多种数据类型,可以无缝、快速地与各种数据库集成。
- numpy之所以快是因为:
- 矢量化代码更简洁。更易于阅读
- 更少的代码行通常意味着更少的错误
- 代码更接近于标准的符号
- 矢量化导致产生更多的“PythonIC”
ndarray
-
ndarray是numpy最重要的一个人特点,它是一系类同数据类型的集合。
- ndarray对象是用于存放同类型元素的多维数组,且每个元素都有相同的存储大小区域
- ndarray对象的内容可以通过索引或切片来访问或者修改,切片对象可以通过内置的slice函数,并设置start/stop等参数,从原数组中切割出一个新数组。
- 使用array、arange等都是将输入数据转换为ndarray,返回的都是ndarray对象,而不是列表。
-
ndarray属性
数组创建
使用array创建数组
- # `使用numpy中的array函数,可以将Python中元组或列表中的数据转化为数组,也可以将多个序列转化成多维数组
- import numpy as np
- arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
- arr
- array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
arr.shape # 此函数查看数组结构是几行几列
arr.dtype # 查看数组数据类型
arr.size # 查看数组元素个数
arr.itemsize # 查看元素字节的大小
arr.shape = 4,3 # 将数组的列和行进行互换,并不是进行矩阵转置
使用arange创建数组
# arange 函数 的参数的顺序表示:指定开始值,终止值,步长
arr1 = np.arange(0,1,0.1)
arr1
# array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
使用linspace创建数组
# 参数顺序表示,指定开始值,终止值,元素个数
arr2 = np.linspace(0,2, 12)
arr2
使用logspace函数创建等比列数组,参数同上
arr3 = np.logspace(0,2,5)
arr3
特殊函数创建数组
注意
zer = np.zeros((2,3)) # 全0数组
zer
array([[0., 0., 0.],
[0., 0., 0.]])
-----------------------
one = np.ones((5,3)) # 全1数组
one
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
-.----------------
eye = np.eye(3) # 创建一个正方的NXN矩阵(对角线为1,其余为0)
eye
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])