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函数返回多个值的示例方法
Dec 04 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
使用python socket分发大文件的实现方法
Jul 08 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
Python 发送邮件方法总结
Aug 10 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 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
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
表单内同名元素的控制
2006/11/22 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python实现的rsa加密算法详解
2018/01/24 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
用Python读取几十万行文本数据
2018/12/24 Python
python使用requests.session模拟登录
2019/08/09 Python
解决Django连接db遇到的问题
2019/08/29 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
生育关怀行动实施方案
2014/03/26 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
观后感的写法
2015/06/19 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python