02Numpy基础(上)

安装虚拟环境

复制代码
//查看conda版本
conda -V    
//查看已有的虚拟环境
conda env list
//创建虚拟环境
conda create -n env_name python=x.x
//指定位置创建虚拟环境
conda create --prefix D:/path/to/myenv python=3.14
//删除虚拟环境
conda remove -n env_name --all
//激活虚拟环境
conda activate env_name
//关闭虚拟环境
conda deactivate

安装numpy

复制代码
//conda虚拟环境安装
conda install numpy
//pip安装
pip install numpy
//验证(推荐使用jupyter)
import numpy as np
print(np.__version__)

//jupyter设置中文
pip3 install jupyterlab-language-pack-zh-CN

数组基础

导入numpy库(conda环境为例)
复制代码
import numpy as np
print(np.__version__)
数据类型

1.只需要知道数据类型分为整数型和浮点型数组

2.使用语法np.array(1,2,3)

3.print输出数组时逗号消失的好处:一是避免与列表混淆,二是输出结果逗号可以与小数点区分开

4.同化定理

当数组都是整数的时候,那么插入一个小数就会被强行截断转化为整数

当数组为浮点数的时候,那么插入一个整数就会强行转化为浮点数

复制代码
import numpy as np
arr2=np.array([1,2,3])
arr2[0]=1.2
print(arr2)

5.共同改变定理(整数型与浮点型相互转化)

界限严格,但是如果全体共同改变,那么就可以做到整数型与浮点型相互转化

规定的方法是 .astype()

复制代码
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
#dtype指定目标类型

import numpy as np
#规定一个整数型
arr1=np.array([1,2,3,4,5,6,7,8,9],dtype=np.int32)

arr_float=arr1.astype(np.float32)

print(arr_float)

6.全体共同改变不只是通过上述np模块的astpye方法,还有如下情况

复制代码
#整数型数组与浮点型数组做运算

#整数型数组遇到除法,不论运算对象是不是整数,都会转化为浮点型数组

#整数型数组与浮点数做运算
arr=np(arr1+0.0)

7.整数型数组很好升级,但是浮点型数组一般不会降级

数组维度(有点绕)

1.一维数组和二维数组

一维数组一层中括号 1,1,1

二维数组两层中括号 \[1,1,1]

\[\[1,1,1\]\]

2.有些函数需要传入数组的形状参数(矩阵的形式)

注意:

维数就是我有几个方向

numpy数组的某个轴,指的是:该数组的某个维度的方向,其方向从索引号由底到高。许多numpy方法或函数在调用时,常常需要指定一个关键参数"axis=X",它表示的是沿哪个轴的方向进行运算(例如,求均值,方差等),这里的X表示的是轴的索引号(axis=0表示轴0,axis=1表示轴1,...,依此类推)。

一维数组有一个方向-默认按轴0方向(列方向)排列形状参数:x或者(x,)x列

二维数组形状参数:(x,y)一个平面或者一个矩阵(几行几列)

三维数组有三个方向-轴0,轴1,轴2形状参数:(x,y,z)第一个数规定有几个平面(类似于高),后两个数规定每个平面如何组织(几行几列)

numpy数组有几个基本属性如下,可以帮助理解

  • ndarray.ndim: 这个属性表示数组的轴数,也就是维度的数量。例如,一个一维数组的ndim为1,二维数组的ndim为2,以此类推。

  • ndarray.shape: 这个属性返回一个元组,表示数组在每个维度上的大小。对于一个n行m列的矩阵,shape将是(n,m)。shape元组的长度就是数组的维度数,即ndim。

  • ndarray.size: 这个属性表示数组中元素的总数。它等于shape元组中所有元素的乘积

    import numpy as np
    #定义一个三维数组
    arr2=np.ones((3,3,3))
    print(arr2)

注意一下数组的维度(通过中括号的数量),后面有些函数比如数组的拼接需要两个数组是同维度

不同维度数组之间的转换

方法 .reshape(shape参数)

注意:

1.不论一二维数组如何转换,均要使用.reshape(shape参数)

2.该方法神奇的是,给定了其他维度的数值后,剩下一个维度可以给-1,让它自己去算。

shape(10)一行十列-----shape(2,5)二行五列

复制代码
#一维数组转为二维数组
arr = np.array([1,2,3,4,5,6,7,8,9,10])#(10)
arr2=arr.reshape(2,-1)#(2,5)
print(arr2)

注意:现规定,在本系列教程中,一维数组称为向量,二维数组称为矩阵

相关推荐
不是万能的豆学长3 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
gCode Teacher 格码致知4 小时前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想7 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech7 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
catchadmin8 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
念何架构之路9 小时前
go-grpc设计思想
开发语言·后端·golang
酷炫码神10 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elastic 中国社区官方博客10 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn18810 小时前
记录本地安装nacos服务的方法及异常
java·开发语言
步行cgn11 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc