校园实习_机器学习_Day2

NumPy性质

是在计算机中矢量化的数组

定义

import numpy as np

1、一般定义

array1d = np.array([1,2,3,4,5])
print(array1d)#结果1
array2d = np.array([[1,2,3,4],[5678]])
print(array2d)#结果2
print(array2d.shape)
print(array2d.type)#结果3

在numpy中数组内的元素大小与类型必须一致,[[1,2,3,4],[5,6,7]]与[[1,2,3,4],[5,6,7,“e”]]都是错误写法

结果1:结果1
结果2:在这里插入图片描述
结果3:在这里插入图片描述

2、特殊定义

print(np.zeros(shape=(2,4)))#输出全为0的2*4矩阵
print(np.ones(shape=(2,4)))#输出全为1的2*4矩阵
print(np.identity(3))#输出三维单位矩阵
print(np.diag([1,2,4,5]))#输出对角线是1,2,4,5的4*4对角矩阵
print(np.sign(array1d))#获取array1d的各个数据的符号
print(np.ones_like(array2d))#生成与array2d同等规格的全1数组
#结果4

结果4:在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3、arange生成器及reshape用法

#与range生成器有相似功能
array1d1 = np.arange(1,21,1)#不包含上界,生成一维数组
print(array1d1)
array2d1 = array1d1.reshape(4,5)#生成二维数组
print(array2d1)
array3d1 = array1d1.reshape(2,2,5)#生成三维数组
print(array3d1)
#结果5

结果5:在这里插入图片描述在这里插入图片描述
在这里插入图片描述

数据类型转换

floatArray = array1d.astype(dtype=np.float)#将array1d数组数据类型int转换成float

矢量计算

两数组对应下标元素进行相应的运算

array1d3=np.arange(1,5)
print(array1d3)#结果[1,2,3,4]
print(array1d3+1)#结果:[2,3,4,5]
print(array1d3+array1d3)#结果[2,4,6,8]
'''上式等价形式:
for row1,row2 in zip(array1d3,array1d3):
    for x,y in zip(row1,row2):
        z=x+y
    pass
'''
print(array1d3-1)#结果[0,1,2,3]
print(array1d3-array1d3)#结果[0,0,0,0]
print(array1d3*2)#结果[2,4,6,8]
print(array1d3*array1d3)#结果[1,4,9,16]

索引与切片

多维数组切片索引用","区分各维度
使用copy添加数组副本,对副本修改不影响原数组
如下文的:arr = array1d1[0:4].copy()

array1d1 = np.arange(1,11,1)
print("切片")
print(array1d1)#输出[1,2,3,4,5,6,7,8,9,10]
#索引
print(array1d1[1])#输出2
print(array1d1[5:])#输出[6,7,8,9,10]
array1d1[5:]=10#批量赋值
print(array1d1)#输出[1,2,3,4,5,10,10,10,10,10]
array1d1[:]=0#array1d1=0不行
print(array1d1)#输出[0,0,0,0,0,0,0,0,0,0]
#得到切片副本:不会影响到原数组
arr = array1d1[0:4].copy()
arr[:] = 1
print(array1d1)#输出[0,0,0,0,0,0,0,0,0,0]
print(arr)#输出[1,1,1,1,1,1,1,1,1,1]
#二维数组索引、切片
array2d3 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
print(array2d3)#输出
print(array2d3[1,0:2])#输出[6,7]
print(array2d3[0:,2:])#array2d3[一维切片,二维切片],三维同样
#输出[3,4,5]
#    [8,9,10]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值