numpy入门_索引、合并、分割、拷贝

Created at 2018-07-18 Updated at 2018-07-18 Category Study Tag python / numpy

索引

  • 一般用法:

    import numpy as np

    A = np.arange(12).reshape(3,4)
    print(A)

    # [[ 0 1 2 3]
    # [ 4 5 6 7]
    # [ 8 9 10 11]]

    print(A[1]) # [4 5 6 7]
    print(A[1][1]) # 5
    print(A[1,1]) # 5
    print(A[:,1]) # [1 5 9]
    print(A[1,:]) # [4 5 6 7]
    print(A[1,1:3]) # [5 6]
  • 行输出:

    for row in A:
    print (row)

    # [[ 0 1 2 3]
    # [ 4 5 6 7]
    # [ 8 9 10 11]]
  • 如果想按照列输出,则先利用A的转置:

    for column in A.T:
    print (column)

    # [0 4 8]
    # [1 5 9]
    # [2 6 10]
    # [3 7 11]
  • 迭代输出:

    • faltten() 将A转化为一维
    • flat 迭代器:
      print(A.flatten())
      for item in A.flat:
      print (item)
      # [ 0 1 2 3 4 5 6 7 8 9 10 11]
      # 0
      # 1
      # 2
      # 3
      # 4
      # 5
      # 6
      # 7
      # 8
      # 9
      # 10
      # 11

合并:

A = np.array([1,1,1])
B = np.array([2,2,2])
print(np.vstack((A,B))) #上下合并
print(np.hstack((A,B))) #左右合并
print(A[:,np.newaxis]) # 更换维度
print(np.concatenate((A,B,A,B),axis =0))

分割:

np.split(​ary, indices_or_sections, axis) # 均等分割
np.array_split(​ary, indices_or_sections, axis) # 不均等分割
np.vsplit(​ary, indices_or_sections) #按行分割
np.hsplit(​ary, indices_or_sections) #按列分割

拷贝:

同一维情况,单纯的相等不能产生新副本。
二维下不能使用切片,用b=a.copy #deep copy

愿你是你所期待的样子

愿你还是你所期待的样子

Hide