Python机器学习实验 数据处理之Numpy

一、实验目的

1. 了解numpy库的基本功能

2. 掌握Numpy库的对数组的操作与运算

二、实验工具:

1. Anaconda

2. Numpy

三、Numpy简介

Numpy 的英文全称为 Numerical Python,指Python 面向数值计算的第三方库。Numpy 的特点在于,针对 Python 内建的数组类型做了扩充,支持更高维度的数组和矩阵运算,以及更丰富的数学函数。Numpy 是 Scipy.org 中最重要的库之一,它同时也被 Pandas,Matplotlib 等我们熟知的第三方库作为核心计算库。

NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。

Numpy包括了:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。Numpy和稀疏矩阵运算包scipy配合使用更加方便。

四、实验内容

1. 数组的创建(创建全0数组,全1数组,随机数数组)

#数组的创建(创建全0数组,全1数组,随机数数组)

import numpy as np
a=np.zeros(5)
b=np.ones(5)
c=np.random.randint(0,5)
print(a,b,c)

2. 数组的属性(查看数组的维度,数组元素的个数)

#数组的属性(查看数组的维度,数组元素的个数)

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a.shape)
print(a.size)

3. 数组的维度操作(将数组的行变列,返回最后一个元素,返回第2到第4个元素,返回逆序的数组)

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

#数组的维度操作(将数组的行变列,返回最后一个元素,返回第2到第4个元素,返回逆序的数组)

import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.T)
print(a[-1])
print(a[1:4])
print(a[::-1])

4. 数组的合并(数组的水平合并,垂直合并,深度合并)

a=np.arange(9).reshape(3,3)

b=np.arange(9).reshape(3,3)

#数组的合并(数组的水平合并,垂直合并,深度合并)
import numpy as np
a=np.arange(9).reshape(3,3)
b=np.arange(9).reshape(3,3)
c=np.hstack((a,b))
print(c)
d=np.vstack((a,b))
print(d)
e=np.dstack((a,b))
print(e)

5. 数组的拆分(数组的水平拆分,垂直拆分,深度拆分)

a=np.arange(27).reshape(3,3,3)

#数组的拆分(数组的水平拆分,垂直拆分,深度拆分)
import numpy as np
a=np.arange(27).reshape(3,3,3)
c=np.hsplit(a,3)
print(c)
d=np.vsplit(a,3)
print(d)
e=np.dsplit(a,3)
print(e)

6. 数组运算(与常的四则运算,与数组的四则运算,判断数组是否相等)

a=np.arange(4,dtype=np.float32).reshape(2,2)

b=np.arange(4,8,dtype=np.float32).reshape(2,2)

#数组运算(与常的四则运算,与数组的四则运算,判断数组是否相等)
import numpy as np
a=np.arange(4,dtype=np.float32).reshape(2,2)
b=np.arange(4,8,dtype=np.float32).reshape(2,2)
constant=5
print(a+constant)
print(a-constant)
print(a*constant)
print(a/constant)
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a==b)
print(a!=b)

7. 数组的常用函数(数组所有元素的和、积、平均值、最大值、最小值、元素替换、方差、标准差)

a=np.array([3,2,4])

#数组的常用函数(数组所有元素的和、积、平均值、最大值、最小值、元素替换、方差、标准差)
import numpy as np
a=np.array([3,2,4])
print(np.sum(a))
print(np.prod(a))
print(np.mean(a))
print(np.max(a))
print(np.min(a))
a[0]=10
print(a)
print(np.std(a))
print(np.var(a))

8.创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1

#创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
import numpy as np
a=np.zeros(10)
a[4]=1
print(a)

9.运行以下代码,理解每句代码的意思或输出结果(print 语句):

(a)

mysqrt = [math.sqrt(x) for x in range(0,5)]

mycrt = [x**(1/3) for x in range(0,5)]

npData = np.array(mysqrt)

print(“The shape:”, npData.shape)

print(“The dimensionality:”, npData.ndim)

print(“The type:”, npData.dtype)

twoDarray = np.array([mysqrt, mycrt])

print(“The shape:”, twoDarray.shape)

print(“The dimensionality:”, twoDarray.ndim)

print(“The type:”, twoDarray.dtype)

(b)

zeros = np.zeros(3)

zMat = np.zeros((4,3))

ones = np.ones(3)

oMat = np.ones((3,2))

diag = np.eye(4)

rng = np.arange(5)

dm = np.diag(rng)

print(dm.shape)

zMat_re = zMat.reshape(6,2)

Print(zMat_re)

( c )

A = np.random.randint(0,10, size = (3,2))

B = np.random.randint(0,10, size = (3,3,3))

C = np.random.randint(0,10, size = (3,1))

print(A**2)

print(np.sqrt(A))

print(A + C)

print(B + C)

B[:, 0:2 , 0:2 ] -= 20

print(B)

10. 给定一个矩阵 2n×2n,将该矩阵分成四个象限(参见示例),然后返回一个新的 2×2 矩阵,包含每个象限的平均值。

例子:

#给定一个矩阵 2n×2n,将该矩阵分成四个象限,然后返回一个新的 2×2 矩阵,包含每个象限的平均值。
import numpy as np


def quadrant_averages(matrix):
    # 检查输入矩阵的维度
    if matrix.shape[0] != matrix.shape[1] or matrix.shape[0] % 2 != 0:
        raise ValueError("输入矩阵必须是2n×2n的维度")

    n = matrix.shape[0] // 2

    # 分割矩阵为四个象限
    q1 = matrix[:n, :n]
    q2 = matrix[:n, n:]
    q3 = matrix[n:, :n]
    q4 = matrix[n:, n:]

    # 计算每个象限的平均值
    avg_q1 = np.mean(q1)
    avg_q2 = np.mean(q2)
    avg_q3 = np.mean(q3)
    avg_q4 = np.mean(q4)

    # 返回包含每个象限平均值的2x2矩阵
    return np.array([[avg_q1, avg_q2], [avg_q3, avg_q4]])


# 测试函数
matrix = np.array([[1, 2, 5, 7],
                   [4, 1, 8, 0],
                   [2, 0, 5, 1],
                   [0, 2, 1, 1]])

print(quadrant_averages(matrix))

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
练习使用python-numpy的方法——东北大学大数据班数据挖掘Python基础二(1) 实训项目:练习使用numpy的方法。 (1)用0~19的数字生成(4,5)的数组命名为a,查看a的维度;查看a的轴的个数;查看a元素的总个数; (2)创建元素为1,2,3,4的(2,2)的数组 b,查看b中元素类型。 (3)创建一个全1的(4,4)的数组c;创建一个内容随机的(3,2)数组d,并打印d。 (4)用0~11的数,创建一个3*4的数组n1,计算每一列的和;计算每一行的最小值。 (5)生成一个3个元素的数组n2,通过常用函数计算每个元素的平方根;每个元素的标准差。 (6)生成一个9个(可以从0~8)元素的数组n3,计算每个元素的平方根;取出位置2的元素;取出位置2至5之间的元素。 (7)随机生成2个3*3的数组n4和n5,将n4和n5进行垂直合并形成n6;将n4和n5进行水平合并形成n7。 (8)创建一个2行3列的零矩阵命名为z,将z的2行3列的位置值置成1。 (9)生成4*4的对角矩阵,以[1,2,3,4]为对角线,其他位置用0填充,命名为z1 。 (10)用0~8的数,创建成`3*3`的矩阵,命名为z2;用随机数,创建`4*4`的矩阵,命名为z3。 (11)读取iris数据集中的数据。 (12)获取数据中的花萼长度数据。 (13)对花萼长度数据进行排序。 (14)对花萼长度数据进行去重。 (15)对花萼长度数据进行求和。 (16)对花萼长度数据进行求均值。 (17)对花萼长度数据求累计和。 (18)对花萼长度数据求标准差。 (19)对花萼长度数据求方差 。 (20)对花萼长度数据求最大值、最小值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值