数组元素添加、删除和修改
数组也是一个可变类型,可以对数组中的元素进行添加、删除和修改,本文详细介绍了对数组元素的添加和删除的操作,以及这两种操作的方法均已列出。数组元素的修改操作简单,只要对索引和切片掌握,使用索引和切片获取到元素后赋值就可以实现。
添加元素
| 方法 | 说明 | 
|---|---|
| numpy.append() | 数组追加元素 | 
| numpy.insert() | 数组插入元素 | 
numpy.append()
在数组末尾追加元素。
numpy.append(arr, values, axis=None)
 
参数说明:
- arr:接收array_like,需要添加元素的数组。
 - values:接收array_like,追加到末尾的元素,形状必须匹配。arr和values的维度必须相等才能追加
 - axis:接收int,如果未给定轴,则arr和values在使用前都会被展平。
 
返回值:
- ndarray,arr的副本。
 
示例:
# 创建数组a
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 创建数组b       
>>> b = np.arange(7,10).reshape(1,3) # a,b维度相同才能追加
>>> b  
array([[7, 8, 9]]) 
 
注意:数组(arr)和追加值(values)的维度必须相同才可以追击,否则会报错:
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
 
不指定轴向时,生成副本,将数组a,b都展平后进行追加。
# 将数组b追加到数组a后
>>> np.append(a, values=b) # 不指定axis时
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9]) 
 
指定轴向时,根据轴向追加,但是形状必须匹配,指定轴向为行追加时列数必须相等,指定轴向为列追加时,行数必须相等。
>>> np.append(a, values=b, axis=0) # 根据行追加
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9]])
 
指定轴向时,指定轴向为列时,行数不相同,形状不匹配,无法追加,会报ValueError错!
>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
 
numpy.insert()
给定的轴向和指定的索引位置插入值。
numpy.insert(arr, obj, values, axis=None)
 
参数说明:
- arr:接收array_like,输入的数组。
 - obj:接收整数或者整数序列,索引位置。
 - values:接收array_like,需要插入数组的值,需要考虑形状。
 - axis:接收整数,轴向。如果未给定轴向数组会被展平。
 
返回值:
- ndarray,插入值后的副本。
 
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> b = np.ones(shape=(2,1))
>>> b
array([[1.],
       [1.]])
       
# 向数组a的行方向,索引为2的行插入数组b,会自动补全
>>> np.insert(a, 2, b, axis=0)
array([[1, 2, 3],
       [4, 5, 6],
       [1, 1, 1],
       [1, 1, 1]])
       
# 向数组a的列方向,索引为2的列插入数组b
>>> np.insert(a, 2, b, axis=1)
array([[1, 2, 1, 1, 3],
       [4, 5, 1, 1, 6]])
 
删除元素
| 方法 | 说明 | 
|---|---|
| numpy.delete() | 删掉某个轴的子数组,并返回删除后的新数组 | 
numpy.delete()
返回一个沿轴删除了子数组的新数组。
numpy.delete(arr, obj, axis=None)
 
参数说明:
- arr:接收array_like,输入数组。
 - obj:接收索引、切片,或者整数构成的数组。
 - axis:接收整数,轴向
 
返回值:
- ndarray,删除元素后的数组,是副本。
 
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 轴向为列,删除索引为2的列      
>>> np.delete(a, 2, axis=1)      
array([[1, 2],
       [4, 5]])
 
对数据进行操作时形状非常重要,如果形状不匹配会引发报错,需要对报错的类型了解,才能在出问题后及时找到原因。除此以外,轴向也是非常重要的,二维数组中:axis=0表示行,axis=1表示列,这个概念非常容易混淆。
元素修改
使用索引切片获取到该位置的元素后使用"="为该位置重新赋值即可。
语法:数组名[索引]=值 或 数组名[切片]=值
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
       
# 使用索引获取到该位置后重新赋值即可修改元素       
>>> a[0, 1] = 100
>>> a
array([[ 1, 100, 3],
       [ 4,  5,  6]])     
                
Python numpy 数组操作:元素添加、删除与修改
        
                  
                  
                  
                  
                            
本文介绍了如何使用numpy库在Python中对数组进行元素的添加、删除和修改。主要涉及numpy.append()用于在数组末尾追加元素,numpy.insert()用于在指定位置插入元素,以及numpy.delete()用于删除指定位置的元素。同时,文章强调了操作过程中需要注意的数组形状和轴的概念。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					4万+
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            