准备工作:

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

> 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"background-color: #ccffcc">

> 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数据的增、删、改、查实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

标签:
array数据,增删改查

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“Numpy array数据的增、删、改、查实例”
暂无“Numpy array数据的增、删、改、查实例”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?