1-数据科学—Numpy(基操)

1.Python中整型、列表解析

C语言整型本质上是对应某个内存位置的标签,里面存储的字节会编码成整型;而Python的整型其实是一个指针,指向包含这个Python对象所有信息的某个内存位置,其中包括可以转换成整型的字节。
Python列表中的每一项都是一个完整的Python对象。

2.Numpy创建数组

import numpy as np
#创建一个长度为10的数组,数组的值都是0
np.zeros(10,dtype = int)
#创建一个3*5的浮点型数组,数组的值都是1
np.ones((3,5),dtype = float)
#创建一个3*5的数组,数组的值都是3.14
np.full((3,5),3.14)
#创造一个线性序列数组
np.arange(0,20,2)
#创建一个5个元素的数组,这5个数均匀地分配到0-1(等间距)
np.linspace(0,1,5)
#创建一个3*3的,在0-1均匀分布的随机数组成的数组
np.random.random((3,3))
#创建一个3*3的,均值为0,标准差为1的正态分布数组
np.random.normal(0,1,(3,3))
#创建一个3*3的,[0,10)区域的整型数组
np.random.randint(0,10,(3,3))
#创造一个3*3的单位矩阵
np.eye(3,3)
#创建一个由3个整型数组组成的未初始化的数组
#数组的值是内存空间的任意值
np.empty(3)

Numpy标准数据类型

数据类型描述
bool_布尔值,用一个字节存储
int8\int16\int32\int64整型,可表示正负2的n次方的数范围(正数最大值要减一)
uint8\uint16\uint\32\uint\64无符号整型,从0开始,最大值为有符号整型正负绝对值之和
float16\float32\float64半\单\双精度浮点型,整数位分别为5\8\11比特位指数,剩下位表示尾数(从0开始计数)
complex64\complex128复数,由两个32\64位浮点数表示

数组的属性

x = np.random.randint(10,size=(3,4))
#维度
print(x.ndim)
#每个维度的大小
print(x.shape)
#数组的总大小
print(x.size)
#数组的数据类型
print(x.dtype)

数组的索引

x = np.arange(10)
print(x)
#索引获取第i=2个值
print(x[2])
print(x[-1])
x1 = np.random.randint(0,10,(3,4))
print(x1)
#索引获取第i行,第j列(i=1,j=2)
print(x1[1, 2])
#对指定位置的值进行修改
x1[1,2] = 4

数组的切片

'''
     切片是为了获取子数组,切片的切断位置用:
     语法格式:x[start:stop:step]
     x = np.arange(10)
     x_sub = x #这是赋值的引用地址,而不是copy(改变x_sub中的元素,x中也会变)
     x_copy = x.copy#彼此独立,互不影响
'''

一维数组

x = np.arange(10)
print(x[:5])#获取前五个元素
print(x[5:])#获取后五个元素
print(x[5:10:2])#获取5-10位置的元素,间隔2个位置[5 7 9]
print(x[::-1])#所有元素,逆序的[9 8 7 6 5 4 3 2 1 0]
print(x[5::-2])#索引5开始每隔一个元素逆序[5 3 1]

多维数组

x = np.random.randint(0,13,(3,4))
print(x)
'''[[5 6 9 6]
 [4 0 8 1]
 [7 7 8 8]]'''
print(x[:2, :3])#x[行start:行stop:行step,列start:列stop:列step]
'''[[5 6 9]
 [4 0 8]]'''
print(x[:, ::2])#所有行,每隔一列
'''[[5 9]
 [4 8]
 [7 8]]'''
print(x[::-1, ::-1])#逆序
'''[[8 8 7 7]
 [1 8 0 4]
 [6 9 6 5]]'''

数组的变形

x = np.arange(1,10)
print(x)#[1 2 3 4 5 6 7 8 9]
print(x.reshape(3,3))
'''[[1 2 3]
 [4 5 6]
 [7 8 9]]'''
#注意:不能将一维np.arange(10)编程二维,且元素总数要保持一致

x = np.array([1,2,3])
print(x)#[1 2 3]
print(x.reshape((1, 3)))#通过变形获取行向量[[1 2 3]]
print(x[np.newaxis, :])#通过newaxis获取行向量[[1 2 3]]
print(x.reshape(3, 1))#通过变形获取行向量
'''[[1]
 [2]
 [3]]'''

数组的拼接与分裂

拼接

'''
Numpy中的两个数组主要由np.concatenate、p.vstack、p.hstack例程实现
'''

x = np.array([1,2,3])
y = np.array([3,2,1])
print(np.concatenate([x, y]))#一维拼接[1 2 3 3 2 1]
g = np.array([[1,2,3],[4,5,6]])
print(np.concatenate([g, g], axis=1))
'''[[1 2 3 1 2 3]
 [4 5 6 4 5 6]]'''
print(np.hstack([g, g]))
'''[[1 2 3 1 2 3]
 [4 5 6 4 5 6]]'''
print(np.vstack([g, g]))
'''[[1 2 3]
 [4 5 6]
 [1 2 3]
 [4 5 6]]'''

分裂

x = np.arange(12)

x1,x2,x3 = np.split(x,[3,5])
print(x1,x2,x3)#[0 1 2] [3 4] [ 5  6  7  8  9 10 11]
g = np.arange(16).reshape((4,4))
print(g)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]'''
uper,lower = np.vsplit(g,[2])
print(uper)
'''[[0 1 2 3]
 [4 5 6 7]]
'''
print(lower)
'''
[[ 8  9 10 11]
 [12 13 14 15]]'''
left,right = np.hsplit(g,[2])
print(left)
'''
[[ 0  1]
 [ 4  5]
 [ 8  9]
 [12 13]]'''
print(right)
'''
[[ 2  3]
 [ 6  7]
 [10 11]
 [14 15]]
'''
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侥幸烟酒生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值