numpy 主要是给 pandas 模块提供数据源的
什么叫数据源,为什么 numpy 可以给 Pandas 提供数据源
numpy 可以把它理解成一个一维和多维的数组
数组是相同数据类型的一组数据元素的集合,而列表当中的元素可以不是同一数据类型。
数组是一种特殊的列表。
数组和列表表示的都是一组数据结构
一维的数组只有自己本身是个数组。
多维数组里面可以嵌套其他数组
numpy 可以看成是一个一维或多维的数组。这个数组装在的数据类型主要是数值型数据。
numpy 主要的作用是对这些数值进行运算。
所以如果有等地被计算的一些数组就可以放到numpy 模块里面来进行计算。
利用 numpy 模块的一些特性,对数组进行某种形式的运算。
是 python 科学计算库的基础
拥有各种科学计算所对应的操作的工具类
基于这些工具类,就可以对numpy 数组存储的数值元素进行某种形式的科学计算。
想使用numpy 数组就得创建numpy 数组。
import numpy as np
np.array()
用 array 来创建一个一维的函数
光标悬停shift+tab 查看array函数的相关参数
object 参数表示的是数据源
dtype 参数表示的是数组里边所存放数据的数据类型
dtype=none 表示传入的数据按照初始的传入的数据类型进行存放
arr = np.array([1,2,3])
将 numpy 数组赋值给 arr
arr 打印一下看看是否成功
arr = np.array([[1,2,3][4,5,6]])创建一个多维的数组
这个数组就是由俩行三列组成的一个多维数组
arr = np.array([1,2.2,’three’])
如果数据当中存放的是不同的数据类型,那么基于 dtype 的numpy 又会做何处理
array([‘1’, ‘2.2’, ‘three’], dtype=’
为什么都会全部转成了字符串的类型
它会按照设定的数据类型优先级顺序选择最高优先级的数据类型作为这组数据的数据类型。
列表当中的元素数据类型可以不同,数组当中元素的数据类型要相同。
如果numpy 数组当中存放了不同的数据类型会按照数据类型优先级的高低,强转成优先级最高的数据类型。
numpy 数据类型的优先级 , 字符串 > 浮点型 > 整形
numpy 作为一个用来装在数组的容器,有它自己的属性,并且可以根据numpy 所拥有的属性,进行不同的操作。
那么怎么将外部的图片装载到numpy 数组当中呢?
图片本身是由bat(二进制的数据类型)构成的,而图片当中的每一个像素点都可以作为一个数组来进行描述 RGB 。
这里引入数据分析三剑客的另一个成员matplotlib
import matplotlib.pyplot as plt
引入一下这个工具
plt.imread(‘./Pictures/屏幕保护/3173cca4ee7b895a4286e2f2f122f710.jpg’)
plt.imread 调用一张自己主机里面保存的图片 “./”是主机根目录的位置
文件可以在菜单栏file > open 里面查找
将这个数组赋值给 “img_arr”
img_arr = plt.imread(‘./Pictures/屏幕保护/3173cca4ee7b895a4286e2f2f122f710.jpg’)
使用plt.imshow 可以将这组数据以图片的方式再显示出来
plt.imshow(img_arr)
那么对img_arr 这个组数进行一次运算看看会发生什么样的结果
img_arr = img_arr – 100
发现减去100以后与原始图片内容有了差异。
那么既然可以对这些数据进行特定的运算,那么就可以形成一些特定的算法来对图片进行修改和调整,比如对人像调整的美图秀秀。同时还可以对一些人像的数据进行分析和记忆。比如AI换脸。
那么简单小节一下这一点 “matplotlib.imread “依据提供的图片返回一组数组
array 可以创建一维或者多维的数组。
imread 可以帮我们返回一个图片所对应的多维数组。
那么还有哪些创建数组的方法呢?
zero ()
ones ()
linspace ()
arange ()
random ()
我们来依次试一下。
np.ones(shape=(3,4))
这里 3,4 是三行四列的意思
zero 填充的都是0
np.linspace(0,100,num=20)
“0”起始数字,”100″末尾数字,”20″ 包含的数组元素个数
start stop
numpy.linspace 返回的呢是一个一维的等差数列
numpy.arange 返回的是从 start到 stop 规定步长的一组数值
np.arange(10,50,step=3)
array([10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49])也是一个一维的等差数列
linspace 和 arange 只能返回一个一维的数组,ones 和 zero可以通过指定 shape来返回多维数组
np.random.randint(0,100,size=(5,3))
这条命令的作用是返回一个0-100 ,5行3列的随机数组
low=0 high=100 size=5,3
所以我们现在学会了三类创建numpy 数组的方式:
1.array
2.imread
3. zero ones linspace arange random
那么学会了numpy数组的创建接下来就可以对它进行使用了。
以上这些numpy数组存储的基本上都是数值型的数据。
水平有限,还望指正。
Original: https://blog.csdn.net/qq_37925969/article/details/121447275
Author: 歌未尽东方白
Title: 数据分析三件客 numpy,pandas,matplotlib的简单介绍-numpy模块
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762647/
转载文章受原作者版权保护。转载请注明原作者出处!