关于python中数据分析的一些函数

首先先下载numpy函数库

如果使用的pycharm软件,可在设置中下载,在Python interpreter设置里,点击+号,搜索numpy点击下载即可

第一部分

1.array()函数

这是一个将类似数组的数据转为数组的函数,我们还可以控制其数组的维度。

numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0)

参数说明:

  1. object: 必要参数,array_like类型。它可以是任何类似数组的对象(如列表、元组、其他数组等),或者是实现了__array__方法的对象,该方法会返回一个数组。

  2. dtype: 可选参数,数据类型对象或字符串。用于指定创建数组时每个元素的数据类型。如果省略,则NumPy会尝试根据输入数据自动推断合适的数据类型。

  3. copy: 可选布尔值参数。默认为True,这意味着总是创建数据的副本。如果设置为False并且能够避免复制数据(例如,如果输入已经是NumPy数组且满足其他参数要求),则可能会共享内存。

  4. order: 可选参数,字符串类型,可以是'K'(保持输入顺序,尽可能),'C'(C风格的行主序),'F'(Fortran风格的列主序)。指定数组的内存布局。

  5. subok: 可选布尔值参数,默认为False,意味着返回的是基础NumPy类型的数组。如果设为True,允许返回与输入具有相同类型的子类数组。

  6. ndmin: 可选整数参数。指定生成数组的最小维度,如果必要的话,通过在前面添加轴来增加数组的维度。

    import numpy as np# 使用列表创建一个一维数组,默认数据类型为float
    data_list = [1, 2, 3, 4, 5]
    array_1d = np.array(data_list)
    print(array_1d)# 创建一个二维数组并指定数据类型为int32
    data_matrix = [[1, 2], [3, 4]]
    array_2d = np.array(data_matrix, dtype=np.int32)
    print(array_2d)# 不复制输入数据,而是共享内存
    data_tuple = (0.1, 0.2, 0.3)
    array_shared = np.array(data_tuple, copy=False)
    # 改变原始元组中的值会影响创建的数组
    data_tuple[0] = 1.0
    print(array_shared)# 指定ndmin为2,即使输入是一维数据也会创建二维数组
    one_dim_data = [6, 7, 8]
    forced_2d_array = np.array(one_dim_data, ndmin=2)
    print(forced_2d_array)

2.linespace()函数

该函数可以生成一段间距相同的数组,例如

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

参数说明:

  • start:生成数组的第一个元素。
  • stop:生成数组的最后一个元素。
  • num:生成的数组中元素的个数,默认为50。
  • endpoint:布尔值,决定是否包含stop值作为数组的一个元素,默认为True,即包含。
  • retstep:如果设置为True,则返回数组及步长。
  • dtype:可选的数据类型,如果不指定则根据输入数据自动推断。

上图就代表从1开始,到10结束,生成数量为10个的等差数组,他们之间的差值正好为1

3.zeros()和zeros_like()函数

在numpy函数库中,这俩函数都是用来生成全零数组的函数,但他们之间也稍有不同。

zeros()函数用于创建一个指定形状且所有元素均为零的数组,同时允许用户指定数组的数据类型。

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

参数说明:

  • shape:必需参数,可以是一个整数或者一个表示数组维度的元组,用来指定新数组的形状。
  • dtype:可选参数,用于指定数组元素的数据类型,默认为 numpy.float64
  • order:可选参数,用于指定数组在内存中的存储方式,可以是 'C'(按行优先,C语言风格)、'F'(按列优先,Fortran风格)或 'A'(任意,取决于最有效的方式)。

比如以下示例代码,则创建一个3x4的全为零的二维数组

# 创建一个形状为 (3, 4) 的全零浮点数数组
arr = np.zeros((3, 4))
print(arr)

zeros_like()函数则可以根据现有数组创建一个新的具有相同形状和数据类型,但所有元素都是零的数组。它不需要显式地指定形状和数据类型,而是从提供的输入数组中获取这些属性。

numpy.zeros_like(array, dtype=None, order='K', subok=True)

参数说明:

  • array:必需参数,是要参考其形状和数据类型的输入数组。
  • dtype:可选参数,允许你指定新的数据类型覆盖原数组的数据类型,如果不指定,则新数组与输入数组具有相同的数据类型。
  • order 和 subok 参数的功能类似于 numpy.zeros() 中对应的参数,不过在 numpy.zeros_like() 中它们通常不是很重要,因为输出数组通常会遵循输入数组的内存布局。
import numpy as np# 假设有一个已存在的数组
existing_arr = np.array([[1, 2, 3], [4, 5, 6]])# 使用 zeros_like 创建一个与 existing_arr 形状和数据类型相同的全零数组
new_zeros_arr = np.zeros_like(existing_arr)
print(new_zeros_arr)

总结来说,当你需要根据预定义的形状创建全零数组时,使用 numpy.zeros();而当你希望快速创建一个与现有数组具有相同形状和类型的新零数组时,使用 numpy.zeros_like() 更为便捷。

4.random系列,生成随机数数组

NumPy库的numpy.random模块来生成指定形状的随机数组。这里分别给出使用numpy.random生成随机浮点数数组和整数数组的例子:

生成一个4x6的随机小数数组

arr_random = np.random.rand(4,6)

生成整数随机数数组,第一个参数0和第二个参数9代表随机数范围,取不到9,第三个参数为数组结构

arr_random_int = np.random.randint(0,9,(4,6))

5.ndim和shape

在Python的NumPy库中,ndim 和 shape 是用来描述多维数组(ndarray)的重要属性:

ndim是一个属性,代表数组的维度数量,也就是数组“有多少层”。它返回一个整数,表示数组有多少个轴(axis)。

返回值为3代表这是一个3维数组

shape同样是一个属性,但它返回的是一个表示数组各维度大小的元组。这个元组的每一个元素对应数组在相应轴上的尺寸。

这里的shape表示第一维度有2个元素(外层的两个方括号),第二维度也有2个元素(每层方括号内的两个子列表),第三维度有3个元素(每个子列表内的3个数)。比较抽象,上升到4维数组我容易猪脑过载(

  • arr.ndim 告诉你数组的“等级”,即它有多深或多层。
  • arr.shape 明确给出了每一层有多少元素,从而描述了整个数组在各个维度上的具体结构。

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

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

相关文章

深入理解JMM

一、什么是JMM JMM(java memory model)Java内存模型:是java虚拟机规范中定义的一组规范,用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让JAVA程序在各平台都能达到一致的并发结果。其主要规定了线程和内存之间的…

QML| QML 组件

# | QML 组件 | 组件是可重用的、封装好的QML类型,并提供了定义好的接口。组件一般使用一个.qml文件定义。前面讲到的使用QML文档定义对象类型,其实就是创建了一个组件。这种使用独立QML文件创建组件的方法这里不再讨论。除了使用单独的QML文件,还可以使用Component类型在一…

[C++]20.实现红黑树。

实现红黑树 一.基本概念:1.红黑树的概念:2.红黑树的性质: 二.实现红黑树:1.基本结构:2.插入节点的多种情况:1.叔叔存在且为红:2.叔叔不存在/存在且为黑(单旋变色)3.叔叔不存在/存在且为黑(多旋&…

十三、项目相关方管理

十三、项目相关方管理 1、项目相关方管理 ​ 识别相关方是定期识别相关项目方,分析和记录他们的利益、参与度、相互依赖性、影响力和对项目成功的潜在影响的过程。 ** 1.1 关键技术 数据表现 相关方分析会产品相关方清单和关于相关方的各种信息,例如…

Docker简单认识

目录 一、Docker概述 二、容器技术 2.1 容器与虚拟机的比较 2.2 容器和应用程序的比较 三、Docker和容器的关系 四、Docker和操作系统 五、总结 一、Docker概述 Docker 是一个开源的平台,用于开发、运送和运行应用程序。通过使应用程序与底层系统隔离&#x…

OJ_最长公共子序列

题干 C实现 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std;int dp[1002][1002];int main() {int n,m;char s1[1001];char s2[1001];scanf("%d%d",&n,&m);scanf("%s%s",s1,s2);//dp[i][j]是…

Vue 运行报错 Error: Cannot find module ‘semver‘

文章目录 项目场景&#xff1a;问题描述解决方案&#xff1a;注意&#xff1a; 项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 运行 Vue 后遇到一个报错&#xff1a; 我的项目是WebStorm 运行的&#xff0c;不通过命令运行&#xff0c;我奇怪的是…

2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试总结及广东省安全员C证第四批(专职安全生产管理人员)模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;考试总结是安全生产模拟考试一点通总题库中生成的一套广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;模拟试题&#xff0c;…

Halcon OCR文字识别

1、OCR文字识别 FontFile : Universal_0-9_NoRej dev_update_window (off) read_image (bottle, bottle2) get_image_size (bottle, Width, Height) dev_open_window (0, 0, Width, Height, black, WindowHandle) set_display_font (WindowHandle, 16, mono, true, false) dev…

重学SpringBoot3-路径匹配机制

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-路径匹配机制 AntPathMatcherPathPatternParser 和 PathPattern演示AntPathMatcher 示例PathPattern 示例性能和精确度的提升 选择使用哪一种 在 Spring…

TikTok小白必看:3种零粉开播方法,10个直播细节,手把手教你开播!

很多人都想通过TikTok跨境带货来创收&#xff0c;但是新手一没有粉丝基础&#xff0c;二没有小店和带货权限&#xff0c;怎么办&#xff1f; 目前平台要求是至少1000粉&#xff0c;年龄大于18岁&#xff0c;且过去28天内有发布过一个短视频。 TKFFF告诉你3种0粉开播的办法以及…

CTP-API开发系列之十:v6.7.0-Python版封装(Windows/Linux)(附源码)

CTP-API开发系列之十&#xff1a;v6.7.0-Python版封装&#xff08;Windows/Linux&#xff09;&#xff08;附源码&#xff09; CTP-API开发系列之十&#xff1a;v6.7.0-Python版封装&#xff08;Windows/Linux&#xff09;&#xff08;附源码&#xff09;资源获取准备工作Windo…