Numpy学习总结

一、属性

  • ndim:维度
  • shape:行数和列数
  • size:个数
import numpy as np

array = np.array([[1, 2, 3], [2, 3, 4]])        #将列转化为矩阵
print(array)
print('num of ndim', array.ndim)                #维度
print('num of shape', array.shape)              #行数和列数
print('num of size', array.size)                #个数
[[1 2 3]
 [2 3 4]]
num of ndim 2
num of shape (2, 3)
num of size 6

二、Numpy的创建array

  • array:创建数组
  • dtype:数据类型
  • zeros,ones,empty:全0,全1,空
  • arange:指定范围创建数据 
  • linspace:指定线段创建数据
#a = np.array([2, 3, 4],dtype=np.float)         #指定类型int float
#a = np.zeros((2,3))                            #全zeros,ones,empty  2行3列
#a = np.ones((2,3),dtype=np.int)
#a = np.arange(10, 20, 2)                       #创建连续数   10—19,步长2
#a = np.arange(12).reshape(3,4)
a = np.linspace(1,10,6).reshape((2,3))         #创建线性数据  1—10,分成6段
print(a)
[2. 3. 4.]
[[0. 0. 0.]
 [0. 0. 0.]] 
[[1 1 1]
 [1 1 1]] 
[10 12 14 16 18]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]] 
[[ 1.   2.8  4.6]
 [ 6.4  8.2 10. ]]

三、 基础运算

1.基础运算

  • +,-,*:加,减,乘
  • **:平方
  • sin,cos,tan
  • >,<:大于,小于→true false
  • dot:矩阵乘法
  • sun,max,min:求和,最大,最小
#a = np.array([10,20,30,40])
#b = np.arange(4)
#c = a+b                                          #+,-,*
#d = np.sin(a)                                    #sin,cos,tan
#e = a<20                                         #<,>
#f = np.dot(a,b)                                  #矩阵乘法
#g = a.dot(b)
#print(c)
#print(d)
#print(e)
#print(f)
#print(g)

a = np.random.random((2,4))                         
b = np.sum(a)                                     #求和。max min
c = np.sum(a,axis=0)                              #列求和 axis=1 行求和 
print(b)
print(c)
[10 21 32 43]
[-0.54402111  0.91294525 -0.98803162  0.74511316]
[ True False False False]
200
200
4.863344689758311
[1.88911642 0.33159381 0.93565677 1.70697769]

2.基本运算

  • argmin,argmax:最小元素索引,最大元素索引
  • mean,average:平均
  • median:中位数
  • cumsum,diff:累加,累减
  • sort:每行从小到大排列
  • transpose,.T:转置
  • clip:限定大小
A = np.arange(2,14).reshape((3,4))
print(np.argmin(A))                                 #最小(大)元素索引
print(np.argmax(A))
print(np.mean(A))                                   # 平均值
print(np.average(A))
print(np.median(A))                                   # 中位数
print(np.cumsum(A))                                 #累加,累减
print(np.diff(A))

 

0
11
7.5
7.5
7.5
[ 2  5  9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
 [1 1 1]
 [1 1 1]]

 

A = np.arange(14,2, -1).reshape((3,4))
print(np.sort(A))                                   #从小到大排列行
print(np.transpose(A))                              #转置
print(A.T)
print(np.clip(A,5,9))                               #限制在5—9

 

[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]

四、索引

  • a[1] :一维索引
  • A[1][1]:二维索引
  • flatten:展成一维数列
A = np.arange(3,15)
print(A[3]) 
# 6
A = np.arange(3,15).reshape((3,4))
print(A[1][1]) 
 # 8
print(A.flatten())   
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])

五、array合并

  • vstack,hstack:纵向合并,横向合并
  • newaxis:转置操作
  • concatenate:多矩阵或序列合并
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B))              # 纵向合并
D = np.hstack((A,B))              # 横向合并
'''
[[1,1,1]
 [2,2,2]]
[1,1,1,2,2,2]
'''

 

print(A[np.newaxis,:])
# [[1 1 1]]

print(A[:,np.newaxis])
"""
[[1]
[1]
[1]]
"""

 

C = np.concatenate((A,B,B,A),axis=0)        #列操作

print(C)
"""
array([[1],
       [1],
       [1],
       [2],
       [2],
       [2],
       [2],
       [2],
       [2],
       [1],
       [1],
       [1]])
"""

D = np.concatenate((A,B,B,A),axis=1)        #行操作

print(D)
"""
array([[1, 2, 2, 1],
       [1, 2, 2, 1],
       [1, 2, 2, 1]])
"""

六、array分割

  • split(矩阵,分割数,axis=1):纵向分割,横向分割(等分)
  • hsplit、vsplit(矩阵,分割数):纵向分割,横向分割(等分)
  • array_split(矩阵,分割数,axis=1)不等量分割
A = np.arange(12).reshape((3, 4))
print(np.split(A, 2, axis=1))
print(np.split(A, 3, axis=0))
#print(np.hsplit(A, 2)) 
#print(np.vsplit(A, 3))
print(np.array_split(A, 3, axis=1))
'''
[array([[0, 1],
        [4, 5],
        [8, 9]]), array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
        [4, 5],
        [8, 9]]), array([[ 2],
        [ 6],
        [10]]), array([[ 3],
        [ 7],
        [11]])]
'''

七、copy&deep copy

  • =:赋值(有关联)

  • copy():赋值(无关联)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值