学习笔记1

学习笔记(1)

 numpy


    多维数组结构,无须循环对整组数据进进行快速运算。
    引用方法: import numpy as py
    

    1、元素类型

        布尔类型:bool_
        整型:int_ int8 int16 int32 int64
        无符号整型:uint8 uint16 uint32 uint64
        浮点型:float_ float16 float32 float64
        复数型:complex_ complex64 complex123
   

    2、创建方法

        np.array(列表):将列表转化为一个numpy数组
            np.array([1,2,3])
            np.array([0] * 10)
            mp.array(range(10))
        np.zeros(10,dtype='int64'):创建一个长度为10,各元素为0,类型为int64的数组
        np.ones(10):创建一个长度为10,各元素为1,类型为float64(默认)的数组
        np.empty(100):创建一个长度为100,各元素为随机数,类型为float64(默认)的数组
        np.arange(a,b,c):创建一个从a到b(包a不包b),步长为c的数组,c可以是小数,默认c为1
        np.linspace(a,b,c):创建一个从a到b(包a也包b),平均分为c个数(元素个数为c个)
        np.eye(10):创建一个10×10的单位矩阵
    运算规则
        数组与标量:a+1 3*a 1//a a**0.5 a>5
        数组和数组:a+b a/b a*b a%b a==b
        a.reshape((a,b,c)):将数组a变为a×b×c的矩阵
        a.shape:返回数组的形状
        a.ndim(获取维度)
        a.shape(各维度长度)
        a.dtype(数据类型)
        a.T(矩阵转置)
        a.astype(转换数据类型)
        a.swapaxes(0,1)(交换维度,不改变a)
    索引与切片
        a[0][0](数组第一个元素的序号为0)
        a[0,0]:与a[0][0]相同
        a[b:c]:从b到c(包b不包c),b和c可以省略
        #切片只是指代,例如:

a = np.arange(10)
c = a[:4]
c[0] = 20
 print(a)


         输出:

[20  1  2  3  4  5  6  7  8  9]


        若想要复制,则用到深拷贝c = a[:4].copy(),此时改变c不会改变a
        a[0:2,0:2]:二维切片(不能用a[0:2][0:2])
    

    3、布尔型索引

        a[a>5]:返回一个由a中大于5的元素组成的列表,例如:

 

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


输出:

[8 6 9 6 8]


        a[(a>5) & (a%2==0)]:多条件布尔索引(& |)

    4、花式索引

        例子

a = np.array(np.random.randint(0,10,10))
print('a = ',a)
print('a[[1,3,4,6,7]] = ',a[[1,3,4,6,7]])


输出:
 

a =  [4 0 5 0 5 6 4 8 9 1]
a[[1,3,4,6,7]] =  [0 0 5 4 8]

      二维花式索引

例子1

b = np.arange(20).reshape(4,5)
print(b)


输出

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]


例子2

b[[1,3],[1,3]]
b[[1,3],:][:,[1,3]]


输出

array([ 6, 18])
array([[ 6,  8],
       [16, 18]])

    5、通用函数:调用方式:np.xxx

一元函数

作用
abs求绝对值
sqrt开方
expe的x次方
log(log2/log10)求对数
cell向大取整
floor向小取整
round四舍六入五成双
trunc去掉小数部分
rint与round相同
modf返回两个数组,分别为整数部分和小数部分
isnannan处返回True,其他返回False
cos/sin/tan三角函数
sort从小到大排序
unique排除重复元素,并sort
二元函数 作用
add将两个数组相加
substract相减
multiply相乘
divide相除
power次方
mod求余
maximum求大值
minimum求小值
floor_divide求商
dot矩阵内积


 例子1

b = np.array([np.nan,.1,.1,.1,.1])
print(np.isnan(b))
print(b[~(np.isnan(b))])


输出

[ True False False False False]
[0.1 0.1 0.1 0.1]


例子2

a = np.array([3,4,5,6,7])
b = np.array([2,5,3,7,4])
print(np.maximum(a,b))


输出

[3 5 5 7 7]

    6、统计方法:调用方法:ndarray.xxx()

统计函数作用
sum求和
mean求平均值
std求标准差
var求方差
min求最小值
max求最大值
argmin求最小值的索引
argmax 求最大值的索引

    7、随机数生成

随机数函数作用
np.random.randint(0,10,20) 创建一个长度为20的数组,每个元素为0到10之间的随机整数 (包0包10)
np.random.randint(0,10,(3,5,4))创建一个3×5×4的数组,每个元素为0到10之间的随机整数
np.random.rand(10)创建一个长度为10的数组,每个元素为0到1之间的随机浮点数
np.shuffle(list/array)将列表/数组打乱
np.choice(list/array,10)创建一个长度为10的数组,每个元素从列表/数组中随机抽选
np.random.uniform(4,5,10)创建一个长度为10的数组,每个元素为4到5之间的随机浮点数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值