numpy的下载、数据类型、属性、数组创建

下载numpy

因为numpy不依赖于任何一个包所以numpy可以直接使用pip命令直接下载
下载命令:

pip install numpy # 默认从https://pypi.org/simple 下载
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载
pip install numpy -i https://mirrors.aliyun.com/pypi/simple/ # 从阿里云资源站点下载
pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/ # 从中科大资源站点下载

建议使用国内源进行下载避免下载过慢或者下载超时的情况出现

导入

在导入numpy的时候我们习惯于将numpy简写成np方便下面程序的调用,几乎所有的程序员都会这么干

import numpy as np

配置

显示格式的设置

获取显示格式配置信息

np.get_printoptions()

np.get_printoptions

参数说明
precision控制输出结果的精度(即小数点后的位数),默认值为8
threshold当数组元素总数过大时,设置显示的数字位数,其余用省略号代替(当数组元素总数大于设置值,控制输出值得个数为6个,当数组元素小于或者等于设置值得时候,全部显示),当设置值为sys.maxsize(需要导入sys库),则会输出所有元素
suppress小数是否需要以科学计数法的形式输出
linewidth每行字符的数目,其余的数值会换到下一行
formatter自定义输出规则
修改显示格式的配置信息
np.set_printoptions(precision=None, threshold=None,  linewidth=None, suppress=None, formatter=None)

设置警告信息

查看警告类型的设置

print(np.geterr())

geterr
更改警告设置

np.seterr(invalid='ignore')

数组的属性

属性说明
ndim秩,即轴的数量或维度的数量
shape数组的维度,对于矩阵,n 行 m 列
size数组元素的总个数,相当于 .shape 中 n*m 的值
dtypendarray 对象的元素类型
itemsizendarray 对象中每个元素的大小,以字节为单位
flagsndarray 对象的内存信息
realndarray元素的实部
imagndarray 元素的虚部
data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。
  • ndarray.ndim
    ndarray.ndim用于返回数组的维数,也就是秩
import numpy as np

a = np.arange(24)
print(a)
print(a.ndim)  # a现在只有一个维度 所以返回的结果为1
# 现在调整数组为三维数组
b = a.reshape(2, 4, 3) # b 的维度是3
print(b)
print(b.ndim) 打印的结果为3

在这里插入图片描述

  • ndarray.shape
    ndarray.shape()表示数组的维度,返回类型为元组,元组的长度就是数组的维度,也可以用于调整数组的大小
a_shape = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(a_shape)
print(a_shape.shape) #(2, 4)

# 调整数组
a_shape.shape = (4, 2)
print(a_shape)
# 和reshape函数的作用一样

在这里插入图片描述

  • ndarray.size
    数组元素的总个数,相当于 .shape 中 n*m 的值
aa = np.arange(6)
print(aa)
print(aa.size)

在这里插入图片描述

  • ndarray.itemsize
    ndarray.itemsize 以字节的形式返回数组中每一个元素的大小
a = np.arange(24, dtype=np.float64)  # dtype=指定数据类型
print(a.itemsize)

在这里插入图片描述

  • ndarray.flages
    ndarray.flages 返回ndarray 对象的内存信息,包含以下属性:
    |属性 |说明 |
    |–|–|
    |C_CONTIGUOUS | 数据是在一个单一的C风格的连续段中 |
    | F_CONTIGUOUS | 数据是在一个单一的Fortran风格的连续段中 |
    |OWNDATA|数组拥有它所使用的内存或从另一个对象中借用它|
    |WRITEABLE | 数据区域可以被写入,将该值设置为 False,则数据为只读 |
    |ALIGNED | 数据和所有元素都适当地对齐到硬件上 |
    |UPDATEIFCOPY|这个数组是其它数组的一个副本,当这个数组被释放时,原数组的内容将被更新|

数组的创建

有几种方法可以创建数组。

方法说明
empty创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
zeros创建指定大小的数组,数组元素以 0 来填充
ones创建指定形状的数组,数组元素以 1 来填充
zeros_like用于创建一个与给定数组具有相同形状的数组,数组元素以 0 来填充。
ones_like用于创建一个与给定数组具有相同形状的数组,数组元素以 1 来填充
array从常规Python列表或元组中创建数组。得到的数组的类型是从Python列表中元素的类型推导出来的。
  • empty
    numpy.empty(shape, dtype = float, order = 'C')
参数说明
shape数组形状
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
x = np.empty([3, 4], dtype=int)
print(x)

empty

注意 :数组元素为随机值,因为它们未初始化。

  • numpy.zeros
    numpy.zeros(shape, dtype = float, order = 'C')
参数说明
shape数组形状
dtype数据类型,可选
order‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组
# 默认的浮点数类型
x = np.zeros(5)
print(x)
# 设置为整数类型
x2 = np.zeros((5,), dtype=int)
print(x2)
# 自定义类型
x3 = np.zeros((2, 2), dtype=[("x", "i4"), ("y", "i4")])
print(x3)
print(x3.dtype)

在这里插入图片描述

  • numpy.ones
    numpy.ones(shape, dtype = None, order = 'C')
参数说明
shape数组形状
dtype数据类型,可选
order‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组
x = np.ones(5)
print(x)
# 设置为整数类型
y = np.ones([2, 2], dtype=int)
print(y)
# 自定义类型
x3 = np.ones((2, 2), dtype=[("x", "i4"), ("y", "i4")])
print(x3)

在这里插入图片描述

  • numpy.zeros_like
    numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)
参数说明
a给定要创建相同形状的数组
dtype创建的数组的数据类型
order数组在内存中的存储顺序,可选值为 ‘C’(按行优先)或 ‘F’(按列优先),默认为 ‘K’(保留输入数组的存储顺序)
subok是否允许返回子类,如果为 True,则返回一个子类对象,否则返回一个与 a 数组具有相同数据类型和存储顺序的数组
shape创建的数组的形状,如果不指定,则默认为 a 数组的形状。
arr = np.arange(9).reshape(3, 3)
print(arr)
arr_like = np.zeros_like(arr)
print(arr_like)

在这里插入图片描述

  • numpy.ones_like
    numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)
参数说明
a给定要创建相同形状的数组
dtype创建的数组的数据类型
order数组在内存中的存储顺序,可选值为 ‘C’(按行优先)或 ‘F’(按列优先),默认为 ‘K’(保留输入数组的存储顺序)
subok是否允许返回子类,如果为 True,则返回一个子类对象,否则返回一个与 a 数组具有相同数据类型和存储顺序的数组
shape创建的数组的形状,如果不指定,则默认为 a 数组的形状。
arr = np.arange(9).reshape(3, 3)
print(arr)
arr_like = np.ones_like(arr)
print(arr_like)

在这里插入图片描述

个人笔记学习资源来自网络,如有侵权请联系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UG NX二次开发(C#)-显示-更改对象颜色

文章目录 1、前言2、UG NX中的更换对象颜色的功能3、采用UG NX二次开发实现颜色修改3.1 采用直接赋值对象颜色不能直接更改对象颜色3.2 采用NewDisplayModification的方法如下:1、前言 当一个三维模型展现在我们面前时,总会有颜色赋予三维模型的对象上,比如红色、蓝色、银灰…

if条件语句

if条件语句 条件测试 test 测试表达式是否成立,若成立返回0,否则返回其他数值 格式1 :test 条件表达式;格式2 :[ 条件表达式 ] echo $?参数作用-d测试是否为目录 (Directory)-e测试目录或文件是否存在(Exist)-f测…

直线导轨水平仪零位调整方法

对于直线导轨的使用,相信很多人都知道,这主要是因为直线导轨的使用范围非常广泛,小到抽屉,大到机械设备,我们都能看到他的身影,接触得多自然就熟悉了。 事实上,大家对直线导轨的了解可能就仅限于…

Cortex-A7中断详解(一)

STM32中断系统回顾 中断向量表NVIC(内嵌向量中断控制器)中断使能中断服务函数 中断向量表 中断向量表是一个表,表里面存放的是中断向量。 中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量,因此中断向量表是一系…

【Linux入门】linux指令(1)

【Linux入门】linux指令(1) 目录 【Linux入门】linux指令(1)操作系统登录服务器Linux下的基本指令ls指令pwd指令Linux路径分割符 /cd指令touch指令mkdir指令(重要)rmdir指令&&rm指令(重…

linux实现网络程序

1️⃣ 在linux下,通过套接字实现服务器和客户端的通信。 2️⃣ 实现单线程、多线程通信。或者实现线程池来通信。 3️⃣ 优化通信,增加守护进程。 有情提醒,类里面默认的函数是内联。内联函数在调用的地方展开,没有函数地址&…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有:zip、gz等,但是还不支持rar格式的文件,接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开:https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

【计算机基本原理-数据结构】数据结构中树的详解

【计算机基本原理-数据结构】数据结构中树的详解 1)总览2)树的相关概念3)二叉树、满二叉树、完全二叉树4)二叉查找树 - BST5)平衡二叉树 - AVL6)红黑树7)哈弗曼树8)B 树9&#xff09…

TCP流量控制与拥塞控制

什么是流量控制 一条TCP连接的每一侧主机都为该连接设置了接收缓存。当该TCP连接接收到正确的、有序的报文段,就会将数据放入接收缓存。相关联的应用会从缓存中读取数据。 如果发送者发送数据过快、过多,而接收方的应用程序从缓冲区读取的速度较慢&…

机器学习实战教程(十):逻辑回归

概述 逻辑回归(Logistic Regression)是一种用于解决二分类或多分类问题的统计学习方法。它以自变量线性组合的形式进行建模,并使用Sigmoid函数将结果映射到[0, 1]的值域内,表示样本属于某个类别的概率。 Logistic Regression是最…

Stable Diffusion-生式AI的新范式

! 扩散模型(Stable Diffusion)现在是生成图像的首选模型。由于扩散模型允许我们以提示( prompts)为条件生成图像,我们可以生成我们所选择的图像。在这些文本条件的扩散模型中,稳定扩散模型由于其开源性而最为著名。 在这篇文章中&#xff0…

STM32平衡小车 TB6612电机驱动学习

TB6612FNG简介 单片机引脚的电流一般只有几十个毫安,无法驱动电机,因此一般是通过单片机控制电机驱动芯片进而控制电机。TB6612是比较常用的电机驱动芯片之一。 TB6612FNG可以同时控制两个电机,工作电流1.2A,最大电流3.2A。 VM电…

力劲塑机:用CRM“塑造”数字化能力

你知道吗?从手机到电脑,从暖气到扶梯,从家用电器到汽车、摩托车,从眼镜、手表到拉链、纽扣,这些物品的生产过程都离不开压铸和注塑工艺。如果说压铸和注塑这个几百亿的产业带动了几万亿的市场,一点也不夸张…

fc坦克大战游戏完美复刻

文章目录 一、 介绍二、 制作基本物体三、 控制玩家坦克移动、转向四、 子弹脚本、爆炸脚本五、 敌人AI寻路算法六、 坦克生成点脚本七、 用链表实例化地图八、 玩家游戏控制器脚本九、 添加音效十、 资源包 一、 介绍 儿时经典游戏《坦克大战》完整复刻 发射子弹、生成敌人、…

巧用千寻位置GNSS软件|一文教会横断面测量

测横断面主要用于线路工程和水利工程的前期设计中,在线路平曲线设计好之后,千寻位置GNSS软件可用于在中桩处测定垂直于线路中线方向原地貌的地面起伏的数据,本期就为大家介绍具体的操作技巧。 点击【测量】->【测横断面】,选择…

java——最小的K个数

题目链接 牛客在线oj题——最小的K个数 题目描述 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。 数据范围:0≤k,n≤10000&…

Flink之TaskManager内存解析

一、CK失败 Flink任务的checkpoint操作失败大致分为两种情况,ck decline和ck expire: (1)ck decline 发生ck decline情况时,我们可以通过查看JobManager.log或TaskManager.log查明具体原因。其中有一种特殊情况为ck cancel&…

idea使用 ( 二 ) 创建java项目

3.创建java项目 3.1.创建普通java项目 3.1.1.打开创建向导 接 2.3.1.创建新的项目 也可以 从菜单选择建立项目 会打开下面的选择界面 3.1.2.不使用模板 3.1.3.设置项目名 Project name : 项目名 Project location : 项目存放的位置 确认创建 3.1.4.关闭tips 将 Dont s…

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

解决docker启动mysql无法输入中文以及中文不显示或乱码问题

前言 我在使用MySQL时,遇到了两个问题。一是在插入中文数据时,无法输入中文。二是在select的时候,查出来的中文数据是空的(因为插入时为空),然后我就使用Navicat连接数据库添加了中文数据,再到…