Numpy知识点总结

  1. Numpy数组ndarray对象与python里面列表list最大的区别:

    ndarray里面只能存储相同类型的元素

    list对象能存储不同类型的元素

    1. ndarray.ndim		#维度个数,一维 二维 三维
    
    2. ndarray.shape(n,m)		#数组的形状n行m列
    
    3. ndarray.size		#元素的个数
    
    4. ndarray.dtype		#数组的类型
    
    5. ndarray.itemsize		#每个元素字节的大小
    
  2. zeros 、 ones 、 empty

    1.
    c = np.zeros((3,4))
    c
    Out[26]: 
    array([[0., 0., 0., 0.],
           [0., 0., 0., 0.],
           [0., 0., 0., 0.]])
           
    2.
    d = np.ones((5,6))    
    d
    Out[28]: 
    array([[1., 1., 1., 1., 1., 1.],
           [1., 1., 1., 1., 1., 1.],
           [1., 1., 1., 1., 1., 1.],
           [1., 1., 1., 1., 1., 1.],
           [1., 1., 1., 1., 1., 1.]])
    
    3.
    d.dtype
    Out[31]: dtype('float64')
    
    4.
    np.empty((2,3))
    Out[29]: 
    array([[6.23042070e-307, 1.89146896e-307, 1.37961302e-306],
           [6.23053614e-307, 6.23053954e-307, 1.24611470e-306]])
    
    5.
    np.arange(1,11,2)
    Out[30]: array([1, 3, 5, 7, 9])
    
    
  3. Numpy里面常用的数据类型

    image-20200908205652312
  4. 数据类型的特征码

    image-20200908205814659

b
array([[1, 2, 3],
       [4, 5, 6]])
       
b.dtype
dtype('int32')

new_b = b.astype(np.string_)
new_b.dtype
dtype('S11')

new_b
array([[b'1', b'2', b'3'],
       [b'4', b'5', b'6']], dtype='|S11')
       
new_b = b.astype(np.float32)

new_b
array([[1., 2., 3.],
       [4., 5., 6.]], dtype=float32)

  1. 数组运算的三种方式

    image-20200908213313494

6.ndarray的索引和切片的使用

​ 一维数组和python类似

​ 二维数组:image-20200908215621908

7.布尔索引的基本使用

import numpy as np
a = np.arange(16).reshape(4,4)
a
>>>array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
arr = np.array([True,False,False,True])
a[arr]

>>>array([[ 0,  1,  2,  3],
       [12, 13, 14, 15]])

8.数组的转置和轴对称

T属性转置:		 #二维,将原有的行变为列,列变为行
				#三维(0,1,2)-->(2,1,0)逆置

a
>>>array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
b=a.T
b
>>>array([[ 0,  4,  8, 12],
       [ 1,  5,  9, 13],
       [ 2,  6, 10, 14],
       [ 3,  7, 11, 15]])
       
       
transpose()方法转置:

c = a.reshape(4,2,2)
c
>>>array([[[ 0,  1],
        [ 2,  3]],
       [[ 4,  5],
        [ 6,  7]],
       [[ 8,  9],
        [10, 11]],
       [[12, 13],
        [14, 15]]])
c.transpose()
>>>array([[[ 0,  4,  8, 12],
        [ 2,  6, 10, 14]],
       [[ 1,  5,  9, 13],
      


swapaxes转置:

c
>>>array([[[ 0,  1],
           [ 2,  3]],
          [[ 4,  5],
           [ 6,  7]],
          [[ 8,  9],
           [10, 11]],
          [[12, 13],
           [14, 15]]])
c.shape
>>>(4, 2, 2)
c.swapaxes(0,2)
>>>array([[[ 0,  4,  8, 12],
           [ 2,  6, 10, 14]],
          [[ 1,  5,  9, 13],

9.Numpy通用函数(ufunc)

一元通用函数:image-20200909082907324

image-20200909082948901

二元通用函数:

image-20200909083120017

10.将条件逻辑转化为数组运算

where

  • np.where(a,b,c)

    条件a为True则返回b,否则返回c

数组统计运算

image-20200909083609758

和排序相关的函数sort()函数:

a= np.array([[2,3,1],[6,5,4],[7,9,8]])
a
>>>array([[2, 3, 1],
          [6, 5, 4],
          [7, 9, 8]])
a.sort()   #对数组a本身进行了排序
a
>>>array([[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]])

检查函数all()

a
>>>array([[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]])
np.all(a>1)
>>>False

唯一化函数unique() (去重)

a = np.array([1,1,2,2,3,3,4,5,6,7,7,8,8,9,9])
np.unique(a)

>>>array([1, 2, 3, 4, 5, 6, 7, 8, 9])

一个数组的元素在另一个数组是否存在用 in1d() 函数

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
b=np.array([1,5,9])

np.in1d(a,b)

>>>array([ True, False, False, False,  True, False, False, False,  True])

其他函数:

image-20200909085109672

posted @ 2020-09-08 22:09  王韩六六  阅读(171)  评论(0编辑  收藏  举报