本文摘自php中文网,作者不言,侵删。
这篇文章主要介绍了关于Numpy array数据的增、删、改、查,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下准备工作:
增、删、改、查的方法有很多很多种,这里只展示出常用的几种。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> 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]
|
增
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> 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矩阵
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | >>> 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]])
|
查
1 2 3 4 5 6 7 8 9 10 11 12 | >>> 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),第一个参数为一个布尔数组,第二个参数和第三个参数可以是标量也可以是数组。
1 2 3 4 5 6 7 | 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]
|
改
1 2 3 4 5 6 7 8 9 10 | >>> 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矩阵
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | >>> 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]])
|
数组和一个数字的加减乘除的运算,相当于一个广播,把这个运算广播到各个元素中去。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | >>> 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的行数只剩一行了。
1 2 3 | >>> a = np. array ([[1,2],[3,4],[5,6]])
>>> a[0]
array ([1, 2])
|
方法二:
1 2 3 4 5 6 7 8 9 10 | >>> 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]赋值。
1 2 3 4 5 6 7 8 9 10 11 12 | >>> 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中以文本的方式存储以及读取数据方法
以上就是Numpy array数据的增、删、改、查的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python中的tuple是什么
Python对mysql数据库进行操作的实例详解
ipad能下载Python么
Python二进制怎么转十进制?
Python如何赚外快
Python中zip是什么函数
Python在groupby分组后提取指定位置记录方法
Python中lambda函数的简单分析(附示例)
Python数据分析要学什么
Python实现求解括号匹配问题的方法
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Numpy array数据的增、删、改、查