Numpy常用操作

# -*- coding: utf-8 -*-
"""
Created on Sat Mar  9 16:39:52 2019

@author: ZengWei
"""

import numpy as np

'''
Part 1:基础操作
'''

array = np.array([[1,2,3],
                  [2,3,4]],dtype=np.int32)
print(array)
print(array.dtype)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)

np.zeros((3,4))
np.ones((3,4))
np.empty((3,4))
np.arange(10,20,2)  # (起始,结束,步长)
np.arange(12).reshape((3,4))
np.linspace(1,10,6) # (起始,结束,个数)

'''
Part 2:基本运算
'''
a = np.array([10,20,30,40])
b = np.arange(4)

c = a-b
c = b**2
c = 10*np.sin(a)

print(b<3)
#print(b==3)

a = np.array([[1,2],
              [2,3]])
b = np.arange(4).reshape((2,2))
c = a*b # 元素乘法
c_dot = np.dot(a,b)  # 矩阵乘法
#c_dot = a.dot(b)

a = np.random.random((2,4))
np.sum(a)
np.sum(a,axis=1)
np.min(a,axis=0)
np.max(a)

A = np.arange(14,2,-1).reshape((3,4))
print(np.argmin(A))
print(np.argmax(A))
np.mean(A,axis=0) # A.mean()
np.average(A)
np.median(A)  # 中位数
np.cumsum(A)  # 累加
np.diff(A)    # 累差
np.nonzero(A) # 找非0
np.sort(A)
np.transpose(A) # A.T
print((A.T).dot(A))
np.clip(A,5,9) # 小于5的变成5,大于9的变成9

'''
Part 3:索引
'''
print(A[2])
print(A[1][1])
#print(A[2,1])
#print(A[1:2,1])
for row in A:
    print(row)
    
for column in A.T:
    print(column)
    
print(A.flatten())
for item in A.flat:
    print(item)
    
'''
Part 4:合并
'''
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B))  # vertical stack (上下)
print(A.shape,C.shape)
D = np.hstack((A,B))  # horizontal stack (左右)

print(A[np.newaxis,:]) # 行上加了一个维度
A = A[:,np.newaxis]
B = B[:,np.newaxis]

E = np.concatenate((A,B,B,A),axis=0) # 多个合并

'''
Part 5:分割
'''
A = np.arange(12).reshape((3,4))
print(np.split(A,2,axis=1))  # 依照列分成2块
print(np.array_split(A,3,axis=1))  # 不等项分割
np.vsplit(A,3)
np.hsplit(A,2)

'''
Part 6:Copy相关
'''
a = np.arange(4)
b = a
c = a
d = b
b is a
d is a
a[0] = 23 
# a改变,b,c,d也会改变,同样b,c,d改变,四个都会变

b = a.copy() # deep copy,改变a不会影响b

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值