day01-Numpy的安装

numpy的安装

同样,anaconda内置有Numpy包

Numpy是用c语言实现的,运算速度比python快得多

import numpy as np
np.__version__
out: 1.18.5

使用Jupyter编辑器打印numpy包的版本

NumPy

ndarray对象

NumPy定义了一个n维数组对象,简称ndarray对象,它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有相同大小的内存块。与c语言中的数组大致相同。

ndarray对象采用了数组的索引机制,存储方式几乎相同

ndarray参数

numpy.array(object,dtype=None,copy=True,order=None,subok=False,admin=0)

参数说明:在这里插入图片描述

  • object:可以是一个列表、元组,必须给定
  • dtype:float,int,可强制转化
  • 求一个数组的秩array.ndim
#创建实列
np.array([i for i in range(10) if i%2==0])
#得到array[0,2,4,6,8]
np.array([1,2,3,4.5,'5'])
#得到np.array(['1','2','3','4.5','5'])
#会自动往内存最大的类型转换
np.array([[1,2,3],('a','b','c')
])
#得到array([['1','2','3'],['a','b','c']])
#是一个二维数组
np.array([[1,2,3],('a','b','c','d')
])
#当嵌套序列数量不一样时,会转化为一维数组
#array([list(1,2,3),['a','b','c','d'])
np.array([1,2.5,3.1,4.0,5],dtype='int')
#得到array([1,2,3,4,5])向下取整。round()为四舍五入函数

对于第三个参数的说明:

my_list1 = [1,2,3,4]
my_list2 = mylist1
my_list2[1] = 10
#此时输出my_list1 = [1,10,3,4]
#为引用传值。
id(mylist1)#地址
id(mylist2)#地址
#两则的地址是一模一样的。
a = np.array([1,2,3,4])
b = np.array(a)
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址不相同
#说明是引用不是赋值,修改b,a不会被修改
a = np.array([1,2,3,4])
b = a
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址相同
#说明是引用赋值,修改b,a也会被修改
a = np.array([1,2,3])
print(id(a))b = np.array(a)
print(id(b))c = a.copy()
print(id(c))d = a
print(id(d))#b、c是值传递,d是地址传递

4.ndmin

a = np.array([1,2,3],ndmin = 2)
a.ndim
#输出2得到a为array([[1,2,3]])

5.subok参数,类型为bool值,默认False。True:代表使用object的内部数据类型,False:使用数组的数据类型

array属性

在这里插入图片描述

更改数组维数reshape

a = np.array(20)
#一维数组
a = np.array(20).reshape(4,5)
#改为4行5列的数组,且4*5==20不然报错
调整维度resize
numpy.resize(a,new shape)
如果新数组大于原始数组,则新数组将填充a的重复副本,
#a为2行2列
a=np.array([[0,1],[2,3]])
#一a为原数组创建2行3列的新数组
b23=np.resize(a,(2,3))
b23
#array([[0,1,2],
#		[3,0,1]])
#将0,1,2,3循环填入数组中即填充的为数组的重复副本
#使用0填充需要
#array.resize(new_shape)
a.resize((3,4),refcheck = False)
array.size
#求数组元素个数,二维元素总个数
a.astype('int')
#创建a后强制更改元素类型

arange对象

numpy.arange(start,stop,step,dtype)

参数说明:在这里插入图片描述

np.arange(10)
#array([0>>9])
np.arange(3.1)
#array([0.,1.,2.,3.])可指定为浮点
#而python原生range(3.1)为错误代码不能指定浮点数
x = np.arange(5,dtype = float)
# x = array([0.,1.,2.,3.,4.])
np.arange(10,20,2)
#array([10>>18])
len(x)
#求数组长度,不能求出二维元素总个数
array.size
#求数组元素个数,二维元素总个数

等差数列:linspace对象

用于生成等差数列

np.linspace(start,num=50,endpoint=True,retstep=False,dtype = None)

特点【】左闭右也闭

参数说明:在这里插入图片描述

a = np.linspace(1,10,10)
a
#array([1.,2.,3.,4.,5.,6.,7.,8.,9.,10.])A = np.linspace(0,4,9)
#生成【0-4】均分的array浮点数组B = np.linspace(0,4.1,9)
#生成【0-4.1】均分的array浮点数组ar1 = np.linspace(2.0,3.0,num = 5 ,retstep = True)
#生成一个元组,第一个元素为array([2.,2.25,2.5,2.75,3.])
#第二个参数为步长,即每个元素之间的差值0.25
#(array([2.,2.25,2.5,2.75,3.]),0.25)

等比数列:logspace对象

np.logspace(start,stop,num= 50,endpoint=True,base = 10.0,dtype = None)

参数说明:

在这里插入图片描述

a = np.logspace(0,9,10,base = 2)
#array([1.,2.,4.,8.,16.,32.,64.,128.,256.,512,])
np.logspace(A,B,C,base = D)
  • A:生成数组的起始值为D的A次方
  • B:生成数组的结束值为D的B次方
  • C:总共生成C个数
  • D:指数型数组的底数为D,默认为10
# 我们先使用前3个参数,将[1,5]均匀分成3个数,得到1,3,5},
#然后利用第4个参数base=2(默认是10)使用指数函数可以得到最终输出结果{2^1,2^3,2^5}
np.logspace(1,5,3,base=2)
np.logspace(1.0,2.0, num=10)#等价于下面:
np.linspace(1.0,2.0, num=10)
print (a)
10*a

全0数列:zeros()

创建指定大小的数组,数组元素以0填充

numpy.zeros(shape,dtype=float,order = 'C')

参数说明:

在这里插入图片描述

#1.shape可以给一个数,表示一维的多少个0
np.zeros(5)
#默认为浮点数
#shape可以给一个元组表示维数与个数
np.zeros((2,2))
#2行2列的全0数组
#array([[0.,0.],
#	    [0.,0.]])
np.zeros((2,2,3))
#2块2行3列的全0数组,对于下面定义
array([[[0.,0.,0.],[0.,0.,0.]],[[0.,0.,0.],[0.,0.,0.]]])a = array([[1,2,3],[4,5,6]])
np.zeros_like(a)
#创建出与a数组形状相同、类型相同的全0数列
#array([[0,0,0],
#	    [0,0,0]])
  • 全1数列:np.ones()

总结:

在这里插入图片描述在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js浅拷贝和深拷贝的区别

JavaScript中的浅拷贝和深拷贝的主要区别在于它们如何处理引用类型的数据。 浅拷贝仅复制对象的引用,而不复制对象本身。这意味着新旧对象共享同一块内存空间。因此,如果修改了原始对象,复制的对象也会相应地改变,因为它们实际上是…

利用LabVIEW和机器学习实现无规律物体识别

针对变化无规律的物体识别,LabVIEW结合机器学习算法提供了一种高效的解决方案。介绍如何使用LabVIEW编程实现此功能,包括所需工具包、算法选择和实现步骤,帮助开发者在无规律的复杂环境中实现高精度的物体识别。 1. 项目概述 无规律物体的识…

诺瓦星云入职认知能力SHL测验Verify职业性格问卷OPQ可搜索带解析求职题库

欢迎您开启诺瓦星云的求职旅程 恭喜您进入测评环节,接下来您需要作答两个测验,分别是职业性格问卷OPQ和认知能力测验Verify,总共用时大约1小时,祝您作答顺利! 【华东同舟求职】由资深各行业从业者建立的一站式人才服务网络平台&a…

Day1:二分查找704 移除元素27

题目链接704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; int search(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;int mid (right - left) / 2;while (left < right){if (target nums[mid]){return mid;}else if (target …

docker换源

文章目录 前言1. 查找可用的镜像源2. 配置 Docker 镜像源3. 重启 Docker 服务4. 查看dock info是否修改成功5. 验证镜像源是否更换成功注意事项 前言 在pull镜像时遇到如下报错&#xff1a; ┌──(root㉿kali)-[/home/longl] └─# docker pull hello-world Using default …

力扣372. 超级次方

Problem: 372. 超级次方 文章目录 题目描述思路复杂度Code 题目描述 思路 1.处理数组指数&#xff1a;如下图可以将其转换为一个递归的操作 2.处理 mod 运算:对于模运算我们有公式&#xff1a; ( a b ) % k ( a % k ) ( b % k ) % k (a \times b) \% k (a \% k) \times (b…

Zookeeper原理

Zookeeper监听原理 监听原理详解 &#xff08;1&#xff09;首先要有一个main()线程 &#xff08;2&#xff09;在main线程中创建Zookeeper客户端&#xff0c;这时就会创建两个线程&#xff0c;一个负责网络连接通信(connet)&#xff0c;一个负责监听(listener) 。 &#xf…

2.XSS-存储型

储存型XSS 或持久型 XSS 交互的数据会被存在在数据库里面,永久性存储,具有很强的稳定性。 在留言板里面进行测试一下是否有做过滤 "<>?&66666点击提交 查看元素代码&#xff0c;已经提交完成&#xff0c;并且没有做任何的过滤措施 接下来写一个javascrip…

软件工程学系统设计

一、概述 软件设计阶段用比较抽象概括的方式确定目标系统如何完成预定的任务&#xff0c;即确定系统的物理模型。 回答系统 “做什么”。 软件设计是将需求转化为最终产品的唯一途径&#xff0c;是后续开发和维护工作的基础。 1、软件设计过程 从工程管理角度&#xff0c;…

AI网络爬虫:用deepseek批量提取gptstore.ai上的gpts数据

网站首页&#xff1a;https://gptstore.ai/gpts/categories/finance 翻页规律如下&#xff1a; https://gptstore.ai/_next/data/S9vKNrHo4K82xWjuXpw-O/en/gpts/categories/finance.json?slugfinance&page2 https://gptstore.ai/_next/data/S9vKNrHo4K82xWjuXpw-O/en/g…

Python | Leetcode Python题解之第172题阶乘后的零

题目&#xff1a; 题解&#xff1a; class Solution:def trailingZeroes(self, n: int) -> int:ans 0while n:n // 5ans nreturn ans

【六】【QT开发应用】信号和信号槽的五种写法

第一种写法 第二种写法 第三种写法 第四种写法 第五种写法 完整代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow …

Golang | Leetcode Golang题解之第172题阶乘后的零

题目&#xff1a; 题解&#xff1a; func trailingZeroes(n int) (ans int) {for n > 0 {n / 5ans n}return }

用全志T113做了块多功能卡片电脑,成本只要60块

FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板&#xff0c;设计FunnyPi最初的目的是想借此T113卡片电脑来满足日常学习&#xff0c;并结合T113高效能和低功耗的特点&#xff0c;来满足像语音助手&#xff0c;智能家居屏幕、桌面摆件屏、博客服务器等嵌入…

Maven笔记(更新中)

一、Maven简介 Maven是一款为Java项目构建,依赖管理的工具(软件),使用Maven可以自动化构建,测试,打包和发布项目,大大提高了开发效率和质量 Maven主要作用理解 依赖管理 Maven可以管理项目的依赖,包括自动下载所需依赖库,自动下载依赖所需的依赖并且保证版本没有冲突,依赖版…

(五)数据采集与处理基础练习题(17道选择题)

本文整理了数据采集与处理基础相关的练习题&#xff0c;共17道&#xff0c;适用于想巩固理论基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;CDA二级-第二三四章&#xff09;。 1&#xff09; 2&#xff09; 3&#xff09; 4&#xff09; 5&#xff09; 6&#x…

电脑系统重装怎么操作?分享四个win10重装系统方法

“我遇到了一些笔记本电脑的问题&#xff0c;别人告诉我解决这个问题需要重新安装Win10电脑系统。但我不记得我把光盘放在哪里了&#xff0c;我能否在不丢失文件的情况下重新安装操作系统&#xff1f;电脑系统重装怎么操作&#xff1f;”虽然电脑自带系统中有多种方法可供选择&…

工业边缘计算网关

1 介绍 HINETG系列边缘计算网关&#xff08;Linux操作系统&#xff09;&#xff0c;是华辰智通的—款面向工业现场设备接入、数据采集、设备监控的工业级边缘计算网关。采用ARM Cortex-A7 800MHz高性能CPU,拥有以太网、串口、CAN口、IO口等丰富的接口&#xff0c;支持以太网、…

项目实践---Windows11中安装Zookeeper/Hadoop/Hive的部分问题解决

一.Hadoop与Hive兼容版本选择 正常来说&#xff0c;Hadoop与Hive版本不兼容会出现很多问题导致hive安装失败&#xff0c;可以先确定HIve的版本&#xff0c;比如&#xff1a;要用Hive3.1.2版本&#xff0c;该如何确定使用Hadoop的版本呢&#xff0c;需要我们在hive源码中找到对…

【性能优化】表分桶实践最佳案例

分桶背景 随着企业的数据不断增长&#xff0c;数据的分布和访问模式变得越来越复杂。我们前面介绍了如何通过对表进行分区来提高查询效率&#xff0c;但对于某些特定的查询模式&#xff0c;特别是需要频繁地进行数据联接查或取样的场景&#xff0c;仍然可能面临性能瓶颈。此外…