ndarray:多维数组对象

以下内容参考书《利用Python进行数据分析》。
numpy 官方的学习文档
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

1.创建ndarray

创建数组最简单的方法是使用array 函数。它接受一切序列型的对象。

import numpy as npdata1 = [6,7.5,8,0,1]arr1 = np.array(data1)arr1
Out[4]: array([ 6. ,  7.5,  8. ,  0. ,  1. ])

每一个数组都有一个 shape 和一个 dtype

arr1.shape
Out[5]: (5L,)arr1.dtype
Out[6]: dtype('float64')

zeros 和函数 ones 创建指定 长度或形状的全0全1数组。empty创建没有任何具体值的数组

np.zeros(7)
Out[9]: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.])np.ones((2,3))
Out[10]:
array([[ 1.,  1.,  1.],[ 1.,  1.,  1.]])np.empty((2,3))
Out[11]:
array([[ 0.,  0.,  0.],[ 0.,  0.,  0.]])

2.数据类型转换

astype
整数转为浮点数时,小数部分会被截断

arr = np.array([3.7,-1.2,-2.6,0.5])arr
Out[14]: array([ 3.7, -1.2, -2.6,  0.5])arr.astype(np.int32)
Out[15]: array([ 3, -1, -2,  0])

某字符串数组表示的全是数字也可以用astype转换

num_str = np.array(['1.25','-3.6','24'],dtype = np.string_)num_str.astype(float)
Out[18]: array([  1.25,  -3.6 ,  24.  ])

3.数组和标量之间的运算

大小相等的数组间的任何算术运算都会将运算应用到元素级

4.索引和切片

索引:选取数组的子集或单个元素
下标从0开始,左闭右开

arr = np.arange(10)arr
Out[20]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])arr[5:8]
Out[21]: array([5, 6, 7])arr[5:8]=12arr
Out[23]: array([ 0,  1,  2,  3,  4, 12, 12, 12,  8,  9])arr_slice = arr[5:8]arr_slice[1]=123arr
Out[26]: array([  0,   1,   2,   3,   4,  12, 123,  12,   8,   9])arr_slice[:]=64arr
Out[28]: array([ 0,  1,  2,  3,  4, 64, 64, 64,  8,  9])

5.数组的转置和轴对换

计算矩阵内积

arr = np.random.randn(6,3)np.dot(arr.T,arr)
Out[30]:
array([[ 8.46291352, -6.53225698, -0.56153338],[-6.53225698,  9.06106344,  2.52970761],[-0.56153338,  2.52970761,  5.57303457]])

6.通用函数

通用函数是一种对ndarray中的数据执行元素级运算的函数
square: 计算各元素的平方
sign:计算元素的正负号
ceil:大于等于该值的最小整数
floor:小于等于该值的最大整数
rint: 四舍五入,保留dtype
modf:将数组以小数部分和整数部分两个独立的数组形式返回

7.将条件逻辑表述为数组运算

numpy.where 函数
两个值数组和一个布尔数组

xarr = np.array([1.1,1.2,1.3])yarr = np.array([2.1,2.2,2.3])cond = np.array([True,False,True)]
cond = np.array([True,False,True])result = np.where(cond,xarr,yarr)result
Out[7]: array([ 1.1,  2.2,  1.3])

将随机数组的正值替换为2

arr = np.random.randn(3,3)arr
Out[13]:
array([[-0.66787606,  0.94647356, -0.50731958],[ 1.09635393, -0.24440493,  0.33180244],[ 0.11577465, -0.36681824,  0.87039169]])np.where(arr > 0,2,arr)
Out[14]:
array([[-0.66787606,  2.        , -0.50731958],[ 2.        , -0.24440493,  2.        ],[ 2.        , -0.36681824,  2.        ]])

8.排序

arr = np.random.randn(5)arr
Out[20]: array([-1.35004544,  0.83532214,  1.01864971,  0.60209129,  0.18729369])arr.sort()arr
Out[22]: array([-1.35004544,  0.18729369,  0.60209129,  0.83532214,  1.01864971])

多维数组可以对某一维进行排序,只需要将轴编号传给sort即可

arr = np.random.randn(4,3)arr
Out[28]:
array([[ 1.65426166,  0.72345798,  0.54172487],[ 0.42299115,  0.26661342,  0.44222104],[ 0.62432732,  0.6765546 , -0.95483994],[ 1.25453269, -0.15451337, -0.31239763]])arr.sort(1)arr
Out[30]:
array([[ 0.54172487,  0.72345798,  1.65426166],[ 0.26661342,  0.42299115,  0.44222104],[-0.95483994,  0.62432732,  0.6765546 ],[-0.31239763, -0.15451337,  1.25453269]])

9.数组的集合运算

unique(x) 计算x中的唯一元素,并返回有序结果
intersect1d(x,y) 计算x和y中的公共元素,并返回有序结果
union1d(x,y) 计算x和y的并集,并返回有序的结果

ints = np.array([1,1,1,2,3,4,4,3])np.unique(ints)
Out[32]: array([1, 2, 3, 4])

10.线性代数

常用的numpy.linalg 函数、
diag 对角线元素
dot 矩阵乘法
trace 计算对角线元素的和
det 计算行列式
eig 方阵的特征值和特征向量
inv 方阵的逆
qr QR分解
svd 奇异值分解
lstsq 计算Ax=b 的最小二乘解

11. 随机数生成

Numpy基础:数组和矢量计算相关推荐

  1. Numpy基础:数组和矢量计算-笔记与代码

    本文是对<利用python进行数据分析>第四章,"Numpy基础:数组和矢量计算"的一个回顾性阅读笔记,对于代码已经加上自己的部分注释.  Numpy这章主要是将数据的 ...

  2. 一、NumPy(数组和矢量计算)

    文章目录 1.1 多维数组对象 1.1.1 创建ndarray 1.1.2 ndarray的数据类型 1.1.3 数组和标量之间的运算 1.1.4 基本的索引和切片 1.1.5 数组的转置和轴对换 1 ...

  3. python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  4. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说,用numpy的主要目的在于应用矢量化运算.Numpy并没有多么高级的数据分析功能,理解Numpy ...

  5. python向量计算库教程_python中numpy基础学习及进行数组和矢量计算

    前言 在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率,类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下 ...

  6. python 数据分析5 NumPy 基础:数组和矢量计算

    系列文章:Python 数据分析 文章目录 五.NumPy 基础:数组和矢量计算 1.n维数组对象 ndarray 创建 dtype 数组运算 基本的索引和切片 一维数组 二维数组 布尔型索引 花式索 ...

  7. Python数据分析学习四 NumPy基础:数组和矢量计算

    Python数据分析学习系列四NumPy基础:数组和矢量计算 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下 ...

  8. python数组计算cos_NumPy 基础:数组和矢量计算

    NumPy 基础:数组和矢量计算 NumPy 的 ndarray : 一种多维数组对象 import numpy as np data = np.array() data.shape #对象的结构,如 ...

  9. python输入一个数组输出24进制式的时间_【翻译】《利用Python进行数据分析·第2版》第4章(下)NumPy基础:数组和矢量计算...

    前文传送门: 4.3 利用数组进行数据处理 NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环).用数组表达式代替循环的做法,通常被称为矢量化.一般来说,矢量化数组运算 ...

  10. 《利用Python进行数据分析》笔记--NumPy数组和矢量计算

    阅读SeanCheney博主上传的文章有感,特此写一篇笔记,如侵必删. 第四章 NumPy基础 NumPy的ndarray:一种多维数组对象 1. 创建ndarray array函数,接受序列性的对象 ...

最新文章

  1. C++中多态的概念和意义
  2. 父窗口控制子窗口的行为-打开,关闭,重定位,回复
  3. 主成份分析(PCA)详解
  4. VISTA系统下装AUTOCAD 2006
  5. UnityShader2:Shader与材质
  6. win7旗舰版梦幻桌面高清视频下载
  7. 使用idea和gradle编译spring5源码
  8. ThinkPad如何禁用触摸板
  9. Latex 数学符号速查字典(第2版)
  10. vios映射_以最低要求映射VIOS LUN
  11. Java烤地瓜简单小案例
  12. 计算机科学领域外文期刊影响因子排行,2020最新SCI影响因子出炉,中国期刊Top100榜单公布,附最全EXCEL完整版目录!...
  13. golang 解析 --- 进程,线程,协程
  14. arduino和stm32哪个更好学?
  15. Play Framework 2.5.x 测试环境搭建
  16. JAVA实现的微信扫描二维码支付
  17. 如何用ggplot2绘制漂亮的统计图形
  18. mac gif 动图制作 免费工具 GIPHY CAPTURE
  19. 什么是Oozie——大数据任务调度框架
  20. Python爬虫笔记汇总

热门文章

  1. 爬虫案例——中超联赛新闻
  2. 分治法求众数和重数(含文件输入输出)
  3. Alpha-beta 算法
  4. Python在人工智能中的作用
  5. NNDL 实验八 网络优化与正则化(3)不同优化算法比较
  6. antlr java_ANTLR从接触到搭建完毕
  7. 专职渲染房价上涨气氛 网络房托曝忽悠内幕
  8. VGG16+UNet个人理解及代码实现(Pytorch)
  9. 京东自动秒杀抢券php,京东秒杀抢购的小脚本和chorme的一个开发者插件
  10. 网络营销与html,H5网络营销的优势与劣势