首页 > 其他分享 >numpy的一些基本操作

numpy的一些基本操作

时间:2024-07-20 10:57:13浏览次数:9  
标签:arr 创建 数组 一些 np 基本操作 array numpy

文章目录


NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。

1.numpy数组的多种创建方式

1.1使用np.array()创建

使用array创建一个一维数组:

import numpy as np
arr1 = np.array([1,2,3])

使用array创建一个多维数组;

import numpy as np
arr1 = np.array([1,2,3],[1,2,3])

1.2使用plt创建

使用python中matploylib库,这个库中有一个imread方法,可以读取文件夹的图片,并转化为多维数组的形式存储起来,并且可以通过操作数组的方式对图片颜色进行操作。

import matplotlib.pyplot as plt
arr2 = plt.imread("1.png")
arr2

1.3使用np的routine函数创建

  • zero()
  • ones()
  • linespace()
  • arange()
  • random系列
arr3 = np.zeros(shape = (3,4))#创建一个三维数组,所有元素都为0
arr4 = np.ones(shape = (3,4))#创建一个三维数组,所有元素都为1
arr5 = np.linspace(1,100,num = 20)#创建一个等差数列一维数组
arr6 = np.arange(1,10)#创建一个1-10的数组
arr7 = np.random.randint(1,10,size = (3,4))#创建一个三维随机数数组

2.numpy的常用属性

2.1shape

shape - 这是一个用于表示数组形状的元组。它告诉我们每个维度的大小。例如,对于一个二维数组,形状将告诉我们行数和列数。

nums1 = np.array([[1,2,3],[4,5,6]])
print(nums1.shape)

2.2ndim

这是表示数组维度数量的整数。一个一维数组的 ndim 为 1,二维数组为 2,以此类推。

nums2 = np.array([[1,2,3],[4,5,6]])
nums2.ndim

2.3size

这是一个整数,表示数组中元素的总数。它是所有维度大小的乘积。

nums3 = np.array([[1,2,3],[4,5,6]])
nums3.size

2.4dtype

这是一个对象,表示数组中元素的数据类型。例如,整数、浮点数或自定义数据类型。

nums4 = np.array([[1,2,3],[4,5,6]])
nums4.dtype

3.numpy的索引和切片

索引操作和列表同理

3.1切出前两列数据

arr = np.random.randint(1,100,size=(5,6))
arr[:,0:2]#取出前两列的数据

3.2切出前两行数据

arr[0:2]#取出前两行的数据

3.3切出前两行的前两列的数据

arr[0:2,0:2]

3.4数组数据翻转

arr[::-1]#将数组行倒置
arr[::,::-1]#将数组列倒置
arr[::-1,::-1]#将数组行倒置和列倒置

3.5练习:将一张图片上下左右进行翻转操作

arr_image = plt.imread("1.png")
arr_image = arr_image[::-1]
plt.imshow(arr_image)

3.6练习:将图片进行指定区域的裁剪

plt.imshow(arr_image[60:100,200:500,])

4.统计&聚合&矩阵操作

4.1常用的统计函数

  • numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
  • numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
  • numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
  • 标准差std():标准差是一组数据平均值分散程度的一种度量。
    • 公式:std = sqrt(mean((x - x.mean())**2))
    • 如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。
  • 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
num.std()
num.var()

4.2常用的聚合操作

sum,max,min,mean

num = np.array([[69, 80,  7, 90, 31, 44],
       [37, 57, 26, 92, 91, 34],
       [13, 16, 93, 54, 87, 34],
       [ 5, 16, 47, 66, 51, 12],
       [54, 63, 20, 11, 94, 88]])
num.sum(axis = 1)
num.max(axis = 1)

4.3常用的矩阵操作

  • NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列。
  • numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。
arr.T#转置矩阵
#矩阵相乘
a1 = np.array([[2,1],[4,3]])
a2 = np.array([[1,2],[1,0]])
np.dot(a1,a2)

标签:arr,创建,数组,一些,np,基本操作,array,numpy
From: https://blog.csdn.net/2303_82176667/article/details/140557592

相关文章

  • MySQL数据库基本操作以及使用
    MySQL数据库操纵数据库查看数据库showdatabases;创建数据库createdatabase<database_name>;删除数据库dropdatabase<database_name>;使用数据库usemysql操纵数据表查看数据表showtables;创建数据表CREATETABLETBL_USER(#创建user,tableU_IDINTPR......
  • SciTech-Mathematics-Probability+Statistics-Descriptive stats + percentiles in nu
    DescriptiveStats+percentilesinnumpyandscipy.statshttps://dev.to/sayemmh/descriptive-stats-percentiles-in-numpy-and-scipystats-59a7DEVCommunitySayemHoque,PostedonOct13,2022•UpdatedonNov16,2022Descriptivestats+percentilesinnumpy......
  • 一些操作线性表的函数及使用方法
    线性表的增删查改头文件seqlist.h#ifndefSEQLIST#defineSEQLIST//#include<myhead.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAXSIZE100typedefintdatatype;typedefstruct{datatypedata[MAXSIZE];in......
  • SciTech-Mathmatics-Statistics-NumPy and Statistics: Descriptive Statistics
    StatisticsFromNumPyOfficialDocs.https://numpy.org/doc/stable/reference/routines.statistics.htmlOrderstatisticsnumpy.percentilenumpy.percentile(a,q,axis=None,out=None,overwrite_input=False,method='linear',keepdims=False,*,weig......
  • Python数据可视化之numpy的11个常用的创建数组的函数
    numpy库在处理成千上万的数据时,Python的1维列表已经不适合来对数据进行处理,效率会很慢,所以numpy就诞生了,他可以将列表变成数组,而数组可以是1维、2维、3维甚至更高纬度,可用于存储和处理大型的矩阵,此外numpy提供了大量的数学函数,包括数学、逻辑、形态操作、排序、选择,输出和......
  • 一些有趣的代码注释
    在网上冲浪的时候看到了一些很好玩的注释,分享一波~用处:好玩,例如放到SpringBoot的banner里,输出到浏览器控制台里…‍佛祖保佑/***_ooOoo_*o8888888o*88"."88*......
  • numpy
    一、数组基础导入numpy是,通常给其一个别名“np”,即importnumpyasnp1.1数据类型(1)整数型数组与浮点型数组为克服列表的缺点,应该numpy数组只能容纳一种数据类型,以节约内存。为方便起见,可将numpy数组简单分成整数型数组与浮点型数组。注意,使用print输出numpy数组后,元素......
  • 一些数据库专家称,最新的 MySQL 版本令人失望
    据分析师认为,Oracle 的重点在其他方面,但要说所有创新都可以在社区版中运行是“不公平”的。MySQL 的最新版本让一些评论员和开发者们感到失望,他们担心开源数据库的管理者Oracle可能有其他的“优先事项”。本月初,长期以来一直推销其自有专有数据库系统的Oracle发布了MySQL ......
  • 数据科学入门之关于jupyter notebook的基本使用及numpy数据库的基本调用(内含一些报错
    前言介绍一下数据科学  在IBM(国际商用机器公司)官网上对数据科学的解释是数据科学将数学和统计学、专业编程、高级分析,人工智能和机器学习与特定主题专业知识相结合,获取隐藏在组织数据中的切实可行的洞察。这些洞察可用于指导决策和战略规划。  关于数据科学,我十分喜......
  • LangChain补充一:一些小且有用的点
    一:LangChain表达式语言LCEL(LangChainExpressionLanguage)chain:我们可以将包括大模型调用在内的一组操作组成“链条”,即所谓“调用链”(一)概念LangChain提供的LangChainExpressionLanguage(LCEL)让开发可以很方便地将多个组件连接成AI工作流(或者说是调用链)。如下是一......