gpt4 book ai didi

Numpy array数据的增、删、改、查实例

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

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

原文链接:https://blog.csdn.net/zhangchuang601/article/details/79626511 。

最后此篇关于Numpy array数据的增、删、改、查实例的文章就讲到这里了,如果你想了解更多关于Numpy array数据的增、删、改、查实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com