Numpy库的使用

发布于 2019-07-19  149 次阅读


数组

np.array

np.array([[],
          []])
创建数组

np.arange

np.arange(begin,end,step)
从begin到end的一维矩阵

np.arange(begin,end,step).reshape((c,r))
reshape((c,r)):定义维度

np.linspace

np.linspace(begin,end,len) #从begin到end 均分成 len份
np.linspace(begin,end,len).reshape((c,r))

基本运算

np.mean()

print(np.mean(A)) #平均值
print(np.mean(A,axis=0)) #对列进行计算
print(np.mean(A,axis=1)) # 对行进行计算
'''
[10.  9.  8.  7.]   axis=0
[12.5  8.5  4.5]    axis=1
'''

np.dot()

print(np.dot(A,B)) #乘法运算

np.median()

print(np.median(A)) #中位数

np.cumsum()

print(np.cumsum(A)) #累加
[ 2  5  9 14 20 27 35 44 54 65 77 90]

np.diff()

print(np.diff(A)) #累差
'''
[[1 1 1]
 [1 1 1]
 [1 1 1]]
'''

np.nonzero(A)

print(np.nonzero(A)) # 找出非零的数
'''
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
'''

nnp.sort()

print(np.sort(A)) #从小到大

np.transpose() A.T

print(np.transpose(A)) #转置
print(A.T) #转置

np.clip

print(np.clip(A,5,9)) #所有小于5 的值都等于5,所有大于9的值都等于9
'''
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
'''

索引

print(A[2])
print(A[2,:]) #第二行的所有数
print(A[:,1]) #第一列的所有数
print(A[1,1:2]) #第一行 第一到第二个数
#迭代行
for row in A:
    print(row)
#迭代列
for col in A.T:
    print(col)

print(A.flatten()) #迭代器
# [ 3  4  5  6  7  8  9 10 11 12 13 14]

for item in A.flat:
    print(item)

array 合并

np.vstack() np.hstack()

A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B))
print(np.vstack((A,B))) #上下合并
'''
[[1 1 1]
 [2 2 2]]
'''
D = np.hstack((A,B))  #左右合并
'''
[1 1 1 2 2 2]
'''
print(D)
print(C.shape)
print(A[np.newaxis,:])  # 在行上面加一个维度
'''
[[1 1 1]]
'''
print(A[:,np.newaxis]) # 在列上加一个维度
'''
[[1]
 [1]
 [1]]
'''

np.concatenate()

C = np.concatenate((A,B,B,A),axis=0) #多个array的合并  0 上下合并
# C = np.concatenate((A,B),axis=1) #多个array的合并  1 横向合并
print(C)

array分割

np.split()

A = np.arange(12).reshape((3,4))
print(np.split(A,2,axis=1)) # 1 对列进行操作,不能进行不等的分割
'''
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
'''

np.array_split()

print(np.array_split(A,3,axis=1)) #可以进行不等分割
'''
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]

'''

np.vsplit() np.hsplit()

print(np.vsplit(A,3))  # 纵向分割
'''
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
'''
print(np.hsplit(A,2))   #横向分割
'''
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
'''

赋值

a = np.arange(4)
b = a
c = a
d = b
a[0] = 11
print(d)
'''
[11  1  2  3]
a,b,c,d 均发生改变
'''
b = a.copy() #此时的 b ,改变 a 不会改变 b


像烟花也是过一生,像樱花也是一生,只要亮过和盛开不就好了么?