Numpy array数据的增、删、改、查实例


Posted in Python onJune 04, 2018

准备工作:

增、删、改、查的方法有很多很多种,这里只展示出常用的几种。

>>> import numpy as np 
>>> a = np.array([[1,2],[3,4],[5,6]])#创建3行2列二维数组。 
>>> a 
array([[1, 2], 
 [3, 4], 
 [5, 6]]) 
>>> a = np.zeros(6)#创建长度为6的,元素都是0一维数组 
>>> a = np.zeros((2,3))#创建3行2列,元素都是0的二维数组 
>>> a = np.ones((2,3))#创建3行2列,元素都是1的二维数组 
>>> a = np.empty((2,3)) #创建3行2列,未初始化的二维数组 
>>> a = np.arange(6)#创建长度为6的,元素都是0一维数组array([0, 1, 2, 3, 4, 5]) 
>>> a = np.arange(1,7,1)#结果与np.arange(6)一样。第一,二个参数意思是数值从1〜6,不包括7.第三个参数表步长为1. 
a = np.linspace(0,10,7) # 生成首位是0,末位是10,含7个数的等差数列[ 0.  1.66666667 3.33333333 5.  6.66666667 8.33333333 10. ] 
a = np.logspace(0,4,5)#用于生成首位是10**0,末位是10**4,含5个数的等比数列。[ 1.00000000e+00 1.00000000e+01 1.00000000e+02 1.00000000e+03 1.00000000e+04]

>>> a = np.array([[1,2],[3,4],[5,6]])
>>> b = np.array([[10,20],[30,40],[50,60]])
>>> np.vstack((a,b))
array([[ 1, 2],
 [ 3, 4],
 [ 5, 6],
 [10, 20],
 [30, 40],
 [50, 60]])
>>> np.hstack((a,b))
array([[ 1, 2, 10, 20],
 [ 3, 4, 30, 40],
 [ 5, 6, 50, 60]])

不同维数的数组直接相加显然是不允许的。但是可以用一个n行列向量和一个m列行向量构造出一个n×m矩阵

>>> a = np.array([[1],[2]]) 
>>> a 
array([[1], 
 [2]]) 
>>> b=([[10,20,30]])#生成一个list,注意,不是np.array。 
>>> b 
[[10, 20, 30]] 
>>> a+b 
array([[11, 21, 31], 
 [12, 22, 32]]) 
>>> c = np.array([10,20,30]) 
>>> c 
array([10, 20, 30]) 
>>> c.shape 
(3,) 
>>> a+c 
array([[11, 21, 31], 
 [12, 22, 32]])

>>> a
array([[1, 2],
 [3, 4],
 [5, 6]])
>>> a[0] # array([1, 2])
>>> a[0][1]#2
>>> a[0,1]#2
>>> b = np.arange(6)#array([0, 1, 2, 3, 4, 5])
>>> b[1:3]#右边开区间array([1, 2])
>>> b[:3]#左边默认为 0array([0, 1, 2])
>>> b[3:]#右边默认为元素个数array([3, 4, 5])
>>> b[0:4:2]#下标递增2array([0, 2])

NumPy的where函数使用

np.where(condition, x, y),第一个参数为一个布尔数组,第二个参数和第三个参数可以是标量也可以是数组。

cond = numpy.array([True,False,True,False]) 
a = numpy.where(cond,-2,2)# [-2 2 -2 2] 
cond = numpy.array([1,2,3,4]) 
a = numpy.where(cond>2,-2,2)# [ 2 2 -2 -2] 
b1 = numpy.array([-1,-2,-3,-4]) 
b2 = numpy.array([1,2,3,4]) 
a = numpy.where(cond>2,b1,b2) # 长度须匹配# [1,2,-3,-4]

>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> a[0] = [11,22]#修改第一行数组[1,2]为[11,22]。 
>>> a[0][0] = 111#修改第一个元素为111,修改后,第一个元素“1”改为“111”。 
 
>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> b = np.array([[10,20],[30,40],[50,60]]) 
>>> a+b #加法必须在两个相同大小的数组键间运算。 
array([[11, 22], 
 [33, 44], 
 [55, 66]])

不同维数的数组直接相加显然是不允许的。但是可以用一个n行列向量和一个m列行向量构造出一个n×m矩阵

>>> a = np.array([[1],[2]])
>>> a
array([[1],
 [2]])
>>> b=([[10,20,30]])#生成一个list,注意,不是np.array。
>>> b
[[10, 20, 30]]
>>> a+b
array([[11, 21, 31],
 [12, 22, 32]])
>>> c = np.array([10,20,30])
>>> c
array([10, 20, 30])
>>> c.shape
(3,)
>>> a+c
array([[11, 21, 31],
 [12, 22, 32]])

数组和一个数字的加减乘除的运算,相当于一个广播,把这个运算广播到各个元素中去。

>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> a*2#相当于a中各个元素都乘以2.类似于广播。 
array([[ 2, 4], 
 [ 6, 8], 
 [10, 12]]) 
>>> a**2 
array([[ 1, 4], 
 [ 9, 16], 
 [25, 36]]) 
>>> a>3 
array([[False, False], 
 [False, True], 
 [ True, True]]) 
>>> a+3 
array([[4, 5], 
 [6, 7], 
 [8, 9]]) 
>>> a/2 
array([[0.5, 1. ], 
 [1.5, 2. ], 
 [2.5, 3. ]])

方法一:

利用查找中的方法,比如a=a[0],操作完居后,a的行数只剩一行了。

>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> a[0] 
array([1, 2])

方法二:

>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> np.delete(a,1,axis = 0)#删除a的第二行。 
array([[1, 2], 
 [5, 6]]) 
>>> np.delete(a,(1,2),0)#删除a的第二,三行。 
array([[1, 2]]) 
>>> np.delete(a,1,axis = 1)#删除a的第二列。 
array([[1], 
 [3], 
 [5]])

方法三:

先分割,再按切片a=a[0]赋值。

>>> a = np.array([[1,2],[3,4],[5,6]]) 
>>> np.hsplit(a,2)#水平分割(搞不懂,明明是垂直分割嘛?) 
[array([[1], 
 [3], 
 [5]]), array([[2], 
 [4], 
 [6]])] 
>>> np.split(a,2,axis = 1)#与np.hsplit(a,2)效果一样。 
 
>>> np.vsplit(a,3) 
[array([[1, 2]]), array([[3, 4]]), array([[5, 6]])] 
>>> np.split(a,3,axis = 0)#与np.vsplit(a,3)效果一样。

以上这篇Numpy array数据的增、删、改、查实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
Apr 05 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
解决python运行效率不高的问题
Jul 20 Python
Python 实现简单的客户端认证
Jul 29 Python
使用Python绘制台风轨迹图的示例代码
Sep 21 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 #Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 #Python
python验证码识别教程之滑动验证码
Jun 04 #Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 #Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 #Python
实用自动化运维Python脚本分享
Jun 04 #Python
python中验证码连通域分割的方法详解
Jun 04 #Python
You might like
解析isset与is_null的区别
2013/08/09 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
Python NumPy库安装使用笔记
2015/05/18 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
Python读写unicode文件的方法
2015/07/10 Python
Python守护线程用法实例
2017/06/23 Python
python八皇后问题的解决方法
2018/09/27 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
大学优秀班主任事迹材料
2014/05/02 职场文书
反邪教警示教育方案
2014/05/13 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
解约证明模板
2015/06/19 职场文书
导游词之太原天龙山
2020/01/02 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python