数据分析-python学习 (1)numpy相关

这篇具有很好参考价值的文章主要介绍了数据分析-python学习 (1)numpy相关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内容为:https://juejin.cn/book/7240731597035864121的学习笔记

导包
import numpy as np  

numpy数组创建

  • 创建全0数组,正态分布、随机数组等就不说了,提供了相应的方法
  • 通过已有数据创建有两种 arr1=np.array([1,2,3,4,5]) 或者data=np.loadtxt(‘C:/Users/000001_all.csv’,dtype=‘float’,delimiter=‘,’,skiprows=1) (data=np.genfromtxt(‘C:/Users/000001_all.csv’,dtype=‘float32’,delimiter=‘,’,skip_header=1) )
  • 注意浅拷贝与深拷贝 array copy是深,asarray是浅
import numpy as np  
arr1=np.array([1,2,3,4,5])  
arr2=np.array(arr1)  
arr3=np.asarray(arr1)  
arr4=np.copy(arr1)  
arr1[0]=100  
print('更改后arr2为:',arr2)  
print('更改后arr3为:',arr3)  
print('更改后arr4为:',arr4)

更改后arr2为: [1 2 3 4 5]
更改后arr3为: [100   2   3   4   5]
更改后arr4为: [1 2 3 4 5]
  • 数组的切片也是浅拷贝
Score=np.array([69,80,90,40,60,20,90,94,90,99])#学生的成绩
 Score[:3]=0
 print('修改切片对象成绩后的Score为',Score)
 Score1=[69,80,90,40,60,20,90,94,90,99]
 Score1_list=Score1[:3]
 Score1_list=0
 print('修改Score1_list后的Score1为',Score1)

修改切片对象成绩后的Score为 [ 0  0  0 40 60 20 90 94 90 99]
修改Score1_list后的Score1为 [69, 80, 90, 40, 60, 20, 90, 94, 90, 99]

索引的访问

访问某个下标(一个元素)得到的也是一个数值;如果访问的是多个下标,得到的是一个数组

一维

数据分析-python学习 (1)numpy相关,数据分析,python,学习

二维
Score2=np.array([[69,40,30],[80,90,40],[90,100,50],[40,20,99],[60,60,66],
                 [20,66,44],[90,88,56],[94,99,67],[90,20,70],[99,50,86]])
 print('学号为1的同学的语文和英语成绩为',Score2[[0,0],[0,2]])
学号为 1 的同学的语文和英语成绩为 [69 30]

数据分析-python学习 (1)numpy相关,数据分析,python,学习

三维
Space=np.array([
    [[5,4,8],[5,9,2],[4,5,3]],
    [[4,9,6],[2,2,5],[4,3,4]],
    [[4,2,1],[7,6,3],[4,6,5]]
                ])
 print(Space[[0,0,1],[0,1,2],[0,0,2]])

[5 5 4]

数据分析-python学习 (1)numpy相关,数据分析,python,学习

数组的运算

广播

3种

广播机制的原则是如果两个数组的从后数第一个维度轴长度相符或其中一个数组的轴长为 1,则认为它们能够广播

Arr1=np.array([1,2,3])
print(Arr1)  
print(Arr1*3)

[1 2 3]
[3 6 9]
Arr2=np.array([[1,2,3],[4,5,6]])  
Arr1=np.array([1,2,3])  
print(Arr1)  
print(Arr2)  
print(Arr1+Arr2)

[1 2 3]
**********
[[1 2 3]
 [4 5 6]]
**********
[[2 4 6]
 [5 7 9]]

Arr2=np.array([[1,2,3],[4,5,6]])  
Arr=np.array([[1],[2]])  
print(Arr2)  
print(Arr)  
print(Arr2+Arr)

[[1 2 3]
 [4 5 6]]
**********
[[1]
 [2]]
**********
[[2 3 4]
 [6 7 8]]

数值与数组的标量运算,就用到了广播机制,会把数据扩充到跟待运算一样的大小,按位相加/减/乘/除

计算函数

除了可以arr1与arr2直接相运算,如arr1*arr2,也有相应的方法
方法:add() 加法函数,subtract() 减法函数,multiply() 乘法函数,divide() 除法函数,mod() 取余函数。

Score_F=np.array([69,80,90,40,60,20,90,94,90,99])#第一次成绩  
Score_S=np.array([70,92,63,20,50,96,33,44,55,30])#第二次成绩  
Score_chaju=np.subtract(Score_F,Score_S)  
print('求两次成绩的和',np.add(Score_F,Score_S))
print('第一次成绩的0.6加第二次成绩的0.4',np.add(np.multiply(Score_F,0.6),np.multiply(Score_S,0.4)))
print('查看两次成绩的差距,差距以正数显示',np.abs(Score_chaju))

统计函数

axis有两个值,为0求的是纵向的聚合值,为1求的是横向的聚合值,
常用的聚合函数如下:mean,sum,max,min,std,var

标准差是方差的算数平方根(标准差和原数据单位相同,方差多个平方),所以方差>标准差,说明偏差大;方差<标准差,说明偏差小

数据分析-python学习 (1)numpy相关,数据分析,python,学习

数据分析-python学习 (1)numpy相关,数据分析,python,学习

逻辑运算

提供了all、any 和 where 这三个方法
数据分析-python学习 (1)numpy相关,数据分析,python,学习

# 得到两门成绩都及格的同学的成绩
import numpy as np  
Score=np.array([[98,89],[64,90],[60,56],[92,78],[32,45],[48,30]])  
Score60=Score>60  
Score_bool=np.all(Score60,axis=1)  
print(Score_bool)  
print(Score[Score_bool])

[ True  True False  True False False]
[[98 89]
 [64 90]
 [92 78]]

#查看数学或者语文超过 90 分同学的成绩
Score90=Score>90  
Score_bool=np.any(Score90,axis=1)  
print(Score_bool)  
print(Score[Score_bool])

[ True False False  True False False]
[[98 89]
 [92 78]]

# 成绩大于60的分数有哪些
import numpy as np
Score_math=np.array([98,64,60,92,32,48])
score60_index = np.where(Score_math>60)
score60 = Score_math[score60_index]
print(score60_index)
print(score60)

(array([0, 1, 3]),)
[98 64 92]

矩阵运算

可以用@或dot来实现,它俩是等价的

注意是(3, 2)*(2, 4)=(3, 4) 只有

fruit_price=np.array([[5,4,3]])  # 1*3
jinshu=np.array([[2],[3],[1]])  # 3*1
print('水果的总价格为:\n',fruit_price@jinshu)   #得到的是1*1的矩阵
print('水果的总价格为:\n',np.dot(fruit_price,jinshu))

水果的总价格为:
 [[25]]
水果的总价格为:
 [[25]]

数组的拆分与合并

合并

水平可以用concatenate 方法、hstack 方法和 column_stack 方法
垂直可以用concatenate 方法、vstack 方法和 row_stack 方法

  • 水平
import numpy as np  
Stock1=np.array([[14.322,14.552],[14.472,14.532],[14.592,15.022],[14.852,14.802]])  
Stock2=np.array([[14.652,14.192],[14.832,14.422],[15.022,14.592],[15.152,14.722]])  
# 方式1
Stock=np.concatenate((Stock1,Stock2),axis=1)  
# 方式2
Stock=np.hstack((Stock1,Stock2)) 
# 方式3
Stock=np.column_stack((Stock1,Stock2)) 

print(Stock)#上面3种得到的结果一样,写一块了

[[14.322 14.552 14.652 14.192]
 [14.472 14.532 14.832 14.422]
 [14.592 15.022 15.022 14.592]
 [14.852 14.802 15.152 14.722]]

数据分析-python学习 (1)numpy相关,数据分析,python,学习

  • 垂直
import numpy as np
Stock1=np.array([[14.322,14.552],[14.472,14.532],[14.592,15.022],[14.852,14.802]])
Stock2=np.array([[14.912,14.932],[14.772,14.602]])
Stock=np.concatenate((Stock1,Stock2),axis=0)
Stock=np.vstack((Stock1,Stock2))
Stock=np.row_stack((Stock1,Stock2))
print(Stock)


[[14.322 14.552]
 [14.472 14.532]
 [14.592 15.022]
 [14.852 14.802]
 [14.912 14.932]
 [14.772 14.602]]

数据分析-python学习 (1)numpy相关,数据分析,python,学习

分割
# 水平
import numpy as np
Stock=np.array([[14.322,14.552],[14.472,14.532],[14.592,15.022],[14.852,14.802],[14.912,14.932],[14.772,14.602]])
open,close=np.split(Stock,2,axis=1)
print('open为{},close为{}'.format(open,close))

open[[14.322]
 [14.472]
 [14.592]
 [14.852]
 [14.912]
 [14.772]],close为[[14.552]
 [14.532]
 [15.022]
 [14.802]
 [14.932]
 [14.602]]

# 垂直
# 这里面对行下标做切分,包含头不包含尾如按[1,3,4]: 0,   1,2,   3,   4,5
import numpy as np
Stock=np.array([[14.322,14.552],[14.472,14.532],[14.592,15.022],[14.852,14.802],[14.912,14.932],[14.772,14.602]])
arr1,arr2,arr3,arr4=np.split(Stock,[1,3,4],axis=0)
print('arr1为{},arr2为{},arr3为{},arr4为{}'.format(arr1,arr2,arr3,arr4))

arr1为[[14.322 14.552]],arr2为[[14.472 14.532]
 [14.592 15.022]],arr3为[[14.852 14.802]],arr4为[[14.912 14.932]
 [14.772 14.602]]

综合案例:
https://juejin.cn/book/7240731597035864121/section/7255506664244117559文章来源地址https://www.toymoban.com/news/detail-638161.html

到了这里,关于数据分析-python学习 (1)numpy相关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python数据分析】numpy库的使用-上篇

    NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象和用于处理这些数组的各种工具。NumPy的名称来自于“ Numerical Python ”的缩写。 NumPy的主要功能包括: 多维数组对象:NumPy提供了多维数组对象,称为 ndarray ,它是一个由同类型数据组成的表格。 ndarray 可以包

    2024年02月06日
    浏览(35)
  • 银行营销数据分析---Python(numpy、pandas、matplotlib)

    数据来源:kaggle银行营销数据 工具:Python、Jupyter Notebook 本项目采取的是kaggle银行营销的数据源,主要是预测客户是否会订购银行的产品,但是,这次我将 使用numpy、pandas、matplotlib数据分析三件套,基于源数据,深入分析影响银行三大业务—存款、贷款、营销产品的因素 ,

    2024年02月07日
    浏览(52)
  • 【Python爬虫与数据分析】NumPy进阶——数组操作与运算

    目录 一、NumPy数组操作 1. ndarray更改形状 2. ndarray转置 3. ndarray组合 4. ndarray拆分 5. ndarray排序 二、NumPy数组运算 1. 基本运算 2. 逻辑函数 3. 数学函数 三、日期时间的表示和间隔 1. 日期时间的表示——datetime64 2. 日期时间的计算——timedelta64 3. datetime64与datetime的转换 在对数组进

    2024年02月15日
    浏览(40)
  • 【Python爬虫与数据分析】NumPy初阶——数组创建与访问

    目录 一、NumPy概述 二、NumPy数据类型 三、创建数组 1. numpy.array函数创建数组 2. np.arange创建数组 3. numpy.random.rand创建数组 4. numpy.random.randint创建数组 5. NumPy创建特殊数组 四、数组的属性 五、NumPy数组索引与切片 NumPy(Numerical Python的简称)是一个开源的Python科学计算库,用于对

    2024年02月13日
    浏览(45)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(84)
  • Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

    在现代数据分析领域中,Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持,成为了数据科学家和分析师的首选语言。在Python的库中,NumPy、Pandas和Matplotlib是三个最为重要的库,它们分别用于处理数值数组、数据处理和可视化。本文将介绍这三个库的

    2024年02月04日
    浏览(63)
  • Python 数据分析入门教程:Numpy、Pandas、Matplotlib和Scikit-Learn详解

    NumPy是一个Python的科学计算基础模块,提供了多维数组和矩阵操作功能。 NumPy中的数组比Python自带的列表更适合进行数值计算和数据分析。 Pandas建立在NumPy之上,提供了更高级的数据分析功能。 Pandas中的DataFrame可以看成是一个二维表格,便于加载和分析数据。 Matplotlib可以用来绘

    2024年02月07日
    浏览(44)
  • Python进行数据相关性分析实战

    平时在做数据分析的时候,会要对特征进行相关性分析,分析某些特征之间是否存在相关性。本文将通过一个实例来对数据进行相关性分析与展示。 本次分析的是企业合作研发模式效果分析,企业的合作研发大致分为 企企合作、企学合作、企研合作、企学研合作,也就是企

    2024年02月10日
    浏览(31)
  • 【Python】数据分析+数据挖掘——变量列的相关操作

    在Python和Pandas中,变量列操作指的是对DataFrame中的列进行操作,包括但不限于 选择列、重命名列、添加新列、删除列、修改列数据 等操作。这些操作可以帮助我们处理数据、分析数据和进行特征工程等。 概述 下面将会列出一些基本的操作指令 案例数据表university_rank.csv In

    2024年02月16日
    浏览(34)
  • 【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析

    目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包