NumPy的ndarray:一种多维数组对象
创建ndarray
| data.shape | 表示各维度大小的元组 |
| data.dtype | 表示数组数据类型 |
| data.ndim | 返回维数 |
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpFeU9TOWlOalE1T0dFd1lqVmtaREV3TjJSaE0yVTNNMk01Tm1Oa1pETXlZemcxTVM1S1VFVkg=)
ndarray的数据类型
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRMk1TODRaV1psTUdVNVlqSTVZemM1TmpjMVpUbGxOR0UxT0RVd01USm1ORFV6TlM1S1VFVkg=)
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THprM0wyWTFaakJrWTJZM1pUZ3lNVFZqTXpRMk56QTRPVE5qTm1ObE1EQTBNVFU1TGtwUVJVYz0=)
| astype | 显式地转换其dtype,会创建一个新的数组(一份拷贝) |
数组和表量之间的运算
两数组之间直接使用+、-、*、/
基本的索引和切片
| arr[5:8] | 数组切片是原始数组的视图(数据不会被复制),视图上的任何修改都会直接反映到原数组上 |
| 如arr[5:8]返回index为5-7的值,不包括8 |
| arr[5:8].copy() | 如果想要得到ndarray的副本而不是视图,需要显式地进行复制 |
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpnMk1DOWhZemcwWldZMk16WmpaVFJsTWpJeU9HWTRaalF6WWpFMU5tVmhNV1E1TkM1S1VFVkg=)
布尔型索引
布尔型数组跟切片、整数可混合使用。如data[names=='bob', 2:]
也可以使用多个布尔条件,如& | !。但and和or在布尔型数组中无效
花式索引
| arr([1,5],[3,5]) | 选出的是元素(1,3)和(5,5) |
| arr[[1,5]] [:, [0,3,1,2]] | 选出1和5行的全部元素,列按0/3/1/2顺序排列 |
| np.ix_ | 将两个一维整数数组转换为一个用于选取方形区域的索引器 |
| arr[np.ix_([1,5],[0,3,1,2])]返回结果与上一个一样 |
数组转置和轴对换
| 转置 | arr.T或arr.transpose()(可用于高维度,输入一个由轴编号组成的元组) |
| 返回的是原数据的视图,不进行复制操作 |
通用函数:快速的元素级数组函数
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJeE15ODVPVGhqTTJVd1pUZGxZMlZqTmpZMU0ySTNaV00wWXpZMk5qVTJNR1l6WkM1S1VFVkg=)
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpJd09TOHhaREl5TnpnNVptRXhNek0xWWpkaFpUWTNObVZrTWpsaE5XWTBOVFptTVM1S1VFVkg=)
利用数组进行数据处理
将条件逻辑表述为数组运算
| np.where(x,y,z) | x为条件,x为true则返回y,否则为z |
数学和统计方法
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpNM05pOW1ORGRoTlRoaVlXWTNPRE5qTXpOak4yUXpPVFl5WkRVMU5ERmxZMkZsTUM1S1VFVkg=)
用于布尔型数组的方法
| (arr > 0).sum() | 布尔值会被强制转换为1/0,sum可用于计算1的值 |
| arr.any() | 检查arr数组中是否存在一或多个true |
| arr.all() | 检查是否全都是true |
排序
| np.sort() | 返回已排序的副本,参数可输入1或0表示行和列 |
唯一化以及其他集合的逻辑
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpFNU9DODBNVGt5TnpOaVlUUm1NR1JqT0RRMVptTTRaVGd6T1dVNVpESTBOVE0xTmk1S1VFVkg=)
用于数组的文件输入输出
将数组以二进制形式保存到磁盘
| np.save('文件名',数组) | 存 |
| np.load('文件名') | 读取 |
| np.savez('文件名',a=arr,b=arr) | 将多个数组保存到一个压缩文件 |
存取文本文件
| np.loadtxt('文件名',delimmiter = ',') |
| np.savetxt() | 进行相反的操作 |
线性代数
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpRdlltSTRNVEprWVRrMk5EbGtNMkZqT0RrME9EZG1OMlJoTW1OaU5HUTRNalF1U2xCRlJ3PT0=)
随机数生成
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpFM09DOWhZamcyTm1NM1l6RTBZelppTnpjNU0yWmpaakEyWmpKaU16QXdOVEUyWVM1S1VFVkg=)
![[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算 [利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算](/default/index/img?u=L2RlZmF1bHQvaW5kZXgvaW1nP3U9YUhSMGNITTZMeTl3YVdGdWMyaGxiaTVqYjIwdmFXMWhaMlZ6THpnME5pOWxZakJtTXpNMk9XVm1ZMkZsWldZNE9HSXpNekUwTkdVMk5EazFaakl3WlM1S1VFVkg=)
相关文章: