Numpy基础代码学习

本文详细介绍了Python中的numpy库,涉及基础知识如数值计算、随机数生成,以及数组的创建、数据类型转换、数值修改、形状操作、文件导入、转置和索引切片等。通过实例演示,帮助读者掌握numpy在数据分析中的关键用法。
摘要由CSDN通过智能技术生成

一.前情提要

1.本文是代码结合知识点注释即为知识点

2.主要详细讲解numpy部分基础知识

3.若想深入学习,建议阅读

【python教程】数据分析——numpy、pandas、matplotlib_哔哩哔哩_bilibili

二.笔记/代码

①基本组

#重在数值计算
import random

#补充: random.randint(a, b):返回一个在指定范围[a, b]内的随机整数。
# random.uniform(a, b):返回一个在指定范围[a, b]内的随机浮点数,可以包括a和b。
# random.choice(seq):从序列seq中随机选择一个元素返回。
# random.shuffle(seq):将序列seq中的元素随机排序。
# random.random()函数返回一个0到1之间的随机浮点数,包括0但不包括1。

#引用numpy
import numpy as np

#使用numoy生成数组,得到ndarray的类型
t1=np.array([1,2,3],dtype=float)
#改变数据类型eg: t3=np.array([1,1,0,0,1],dtype=bool)

t2=np.arange(4,10,2)#arange效果等于array(range(10)),2是步长

print(t1.dtype)#检测t1内部的数据类型

#调整数据类型
t4=t1.astype('int8')

#numpy中的小数
t5=np.array([random.random() for i in range(10)])
t6=np.round(random.random(),2)#2是保留两位小数

②数值修改

import numpy as np
frame=''
t2=np.loadtxt(frame,dtype='int',delimiter=',',unpack=True)
#直接修改值
t2[2,2:4]=0

# frame:一个字符串,指定要加载的文件路径或文件名。
# dtype='int':一个可选的参数,指定要加载的数据的类型。在这里,数据被指定为整数类型。
# delimiter=',':一个可选的参数,指定数据文件中的分隔符。在这里,数据文件使用逗号作为分隔符。
# unpack=True:一个可选的参数,如果设置为True,则将加载的数据以行为单位进行解压缩,即每一行的数据将存储在一个单独的数组中。
# 通过使用t2[2,2:4] = 0语句,直接修改了加载的数据。这条语句将t2数组的第三行(索引为2)的第三列到第四列(索引为2到3)的元素值设置为0。

#将<10的值替换为3
t2<10#得出的结果是布尔值
#替换方法
t2[t2<10]=3

#将<3的值替换为0,其余的替换为10
t2.np.where(t2<=3,0,10)

#将<10的值替换为10,>20的替换为20
t2.clip(10,20)

#nan是浮点类型
t2=t2.astype(float)#先将t2转化为浮点类型
t2[3,3]=np.nan

③数组形状

import numpy as np
t1=np.array([0,1,2,3,4,5,6])
print(t1.shape)#shape查看是几维的

t2=np.range(12)
t2.reshape((3,4))#改变t2为3行4列,内部为元组格式

t3=np.arange(24).reshape(2,3,4)#2为2块

t4=t3.reshape((t3.shape[0]*t3.shape[1]))
# t3.shape[0] t3的行, t3.shape[1]t3的列

t3.flatten()#直接将t3展开为一元的

t1+2#会把2加给t1所有的值

#维度相同时,每个数值对应相加
t5=np.arange(0,24).reshape((4,6))
t6=np.arange(100,124).reshape((4,6))
t5+t6

#维度不完全相同时(行和列至少一种相同)
t5=np.arange(0,24).reshape((4,6))#4行6列
t7=np.arange(0,6)#1行6个数
t5-t7
#此时t5每一行分别与t7这一行计算
#shape(3,3,2)可以和shape(3,2)计算,shape(3,3,2)也可以和shape(3,3)计算

④文件导入

import numpy as np
frame=''
t1=np.loadtxt(frame,dtype='int',delimiter=',',unpack=False)
t2=np.loadtxt(frame,dtype='int',delimiter=',',unpack=True)
#此时t1和t2数据按照东南45°对角线翻折即行变成列,列变成行

#数组的转置
# #列表逆时针反转九十度
t2=np.arange(24).reshape(4,6)
t2.transpose()

⑤索引和切片

import numpy as np
frame=''
t2=np.loadtxt(frame,dtype='int',delimiter=',',unpack=True)
print(t2[2])#取谋一行直接在[]内取值

#取连续多行
print(t2[2:])

#取不连续多行
print(t2[2,8,10])

#取行和列
print(t2[[1,8],:])#,前是行,后是列

#取列
print(t2[:,0])#0是第一列

#取连续的多列
print(t2[:,2::2])#第二个冒号是步长

#取不连续多列
print(t2[:,[0,2]])

#取行列,比如3行4列
a=t2[2,3]
print(a)

#取多行多列,比如3行到5行 ,第2列到第4列
print(t2[2:5,1:4])

#取多个不相邻的点
c=t2[[0,2,2],[0,1,3]]#0与0对应一个值,2与1对应一个值一次类推
#结果是(0,0)(2,1)(2,3)
print(c)

⑥维度笔记

#一.基本定义
#计算不同维度的值
#二维行是axis=0,列是axis=1
#三维二维行是块是axis=0,axis=1,列是axis=2

#二.numpy读取数据,格式
#import numpy as np
#t1=np.loadtxt(frame,dtype=np.float,delimiter=None,,usecols=None,unpack=False)
#注释:frame文件,字符串或产生器.dtype数据类型.delimiter分割字符.
# skiprows跳过前x行.usecols读取指定列,索引,元组类型。unpack是否旋转

import numpy as np
frame=''
t1=np.loadtxt(frame,dtype='int',delimiter=',',unpack=False)
t2=np.loadtxt(frame,dtype='int',delimiter=',',unpack=True)
#此时t1和t2数据按照东南45°对角线翻折即行变成列,列变成行

#数组的转置
# #列表逆时针反转九十度
t2=np.arange(24).reshape(4,6)
t2.transpose()
#或者t2.T#
#t2.swapaxes(1,0)交换0轴1轴

三.最后提示

1.本文主要按小节来,如有相关章节笔记不明显,不妨往后看看?

eg:不知道⑤中 frame='' 的含义不妨看看⑥中的

#二.numpy读取数据,格式
#import numpy as np
#t1=np.loadtxt(frame,dtype=np.float,delimiter=None,,usecols=None,unpack=False)
#注释:frame文件,字符串或产生器.dtype数据类型.delimiter分割字符.
# skiprows跳过前x行.usecols读取指定列,索引,元组类型。unpack是否旋转

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值