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 相关文章推荐
python中的yield使用方法
Feb 11 Python
Python中的localtime()方法使用详解
May 22 Python
Python提取网页中超链接的方法
Sep 18 Python
django 常用orm操作详解
Sep 13 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
PyQt5实现简单数据标注工具
Mar 18 Python
Python 切分数组实例解析
Nov 07 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
Python高并发解决方案实现过程详解
Jul 31 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
python爬取新闻门户网站的示例
Apr 25 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
Php注入点构造代码
2008/06/14 PHP
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
详解python3中socket套接字的编码问题解决
2017/07/01 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
python中的set实现不重复的排序原理
2018/01/24 Python
python中的for循环
2018/09/28 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
Python中有几个关键字
2020/06/04 Python
用python计算文件的MD5值
2020/12/23 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
525心理活动总结
2014/07/04 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技