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基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
让Python代码更快运行的5种方法
Jun 21 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
python内存管理机制原理详解
Aug 12 Python
python的移位操作实现详解
Aug 21 Python
python日志模块logbook使用方法
Sep 19 Python
解决python运行启动报错问题
Jun 01 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
php whois查询API制作方法
2011/06/23 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
微信API接口大全
2015/04/15 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP重载基础知识回顾
2020/09/10 PHP
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
详解python中的数据类型和控制流
2019/08/08 Python
Python数据可视化图实现过程详解
2020/06/12 Python
scrapy头部修改的方法详解
2020/12/06 Python
python中温度单位转换的实例方法
2020/12/27 Python
台湾最大网路书店:博客来
2018/03/18 全球购物
Servlet方面面试题
2016/09/28 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
生日寿宴答谢词
2014/01/19 职场文书
迎八一活动主题
2014/01/31 职场文书
班级年度安全计划书
2014/05/01 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
优秀员工自荐书
2015/03/06 职场文书
交通事故调解协议书
2015/05/20 职场文书
怎样写观后感
2015/06/19 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
CSS基础详解
2021/10/16 HTML / CSS