添加删除去重

阅读: 6135     评论:3

下面是几个常见的数组操作:

  1. append:将值添加到数组末尾
  2. insert: 沿指定轴将值插入到指定下标之前
  3. delete: 返回删掉某个轴的子数组的新数组
  4. unique: 寻找数组内的唯一元素
>>> a = np.array([[1,2,3],[4,5,6]]) 
>>> np.append(a, [7,8,9])  # 附加后,变成了一维的
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a  #原来的数组没有改变
array([[1, 2, 3],
       [4, 5, 6]])
>>> a.append([10,11,12]) # ndarray没有这个方法
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-165-a36f3ca1308b> in <module>()
----> 1 a.append([10,11,12])

AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> np.append(a, [[7,8,9]],axis = 0)  # 注意参数格式
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

>>> a = np.array([[1,2],[3,4],[5,6]])
>>> np.insert(a,3,[11,12])  # 在3号位置前插入,变成一维了
array([ 1,  2,  3, 11, 12,  4,  5,  6])
>>> a
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.insert(a,1,[11],axis = 0) # 按行插入
array([[ 1,  2],
       [11, 11],
       [ 3,  4],
       [ 5,  6]])
>>> np.insert(a,1,[11],axis = 1) #按列插入
array([[ 1, 11,  2],
       [ 3, 11,  4],
       [ 5, 11,  6]])

>>> a = np.arange(12).reshape(3,4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> np.delete(a,5)# 删除指定位置的元素后,变成一维了
array([ 0,  1,  2,  3,  4,  6,  7,  8,  9, 10, 11])
>>> np.delete(a,1,axis = 0)
array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])
>>> a  # 并不会修改原来的数组
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> np.delete(a,1,axis = 1)
array([[ 0,  2,  3],
       [ 4,  6,  7],
       [ 8, 10, 11]])

unique是numpy中非常重要的方法:

>>> a = np.array([0,1,4,7,2,1,4,3])
>>> a
array([0, 1, 4, 7, 2, 1, 4, 3])
>>> np.unique(a)
array([0, 1, 2, 3, 4, 7])
>>> b = np.array([[0,1,4,],[7,2,1],[4,3,0]])
>>> b
array([[0, 1, 4],
       [7, 2, 1],
       [4, 3, 0]])
>>> np.unique(b)
array([0, 1, 2, 3, 4, 7])
>>> np.unique(b,axis=0)
array([[0, 1, 4],
       [4, 3, 0],
       [7, 2, 1]])
>>> np.unique(b,axis=1)
array([[0, 1, 4],
       [7, 2, 1],
       [4, 3, 0]])
>>> b = np.array([[0,1,4,],[7,2,1],[4,3,0],[0,1,4,]])
>>> b
array([[0, 1, 4],
       [7, 2, 1],
       [4, 3, 0],
       [0, 1, 4]])
np.unique(b,axis=0)
array([[0, 1, 4],
       [4, 3, 0],
       [7, 2, 1]])

 索引切片迭代 形状变换 

评论总数: 3


点击登录后方可评论

>>> np.insert(a,1,[11],axis = 0) # 按行插入 array([[ 1, 2], [11, 11], [ 3, 4], [ 5, 6]]) >>> np.insert(a,1,[11],axis = 1) #按列插入 array([[ 1, 11, 2], [ 3, 11, 4], [ 5, 11, 6]]) 博主你好,axis = 0 代表列 1 代表行 为什么这个地方 是0代码行 1代表列 怎么理解 求回复。



axis是轴的意思,至于到底是0代表行,还是1代表行,是由源代码开发人员定义的。



numpy最乱的就是axis