机器学习(numpy)练习二

# 输出数组
import numpy as np
arr= np.array([10,20,30,40,50])
print (arr)
# 变成多维数组
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"
import numpy as np
arr=np.array([10,20,30,40,50], ndmin=2)
print(arr)
# 导入需要用到的库
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"
import numpy as np 
import matplotlib.pyplot as plt 
 
 
 
# 导入需要用到的库
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"
import numpy as np
arr = np.array([10,20,30,40,50], dtype = complex)

print(arr)
# 导入需要用到的库
import os
# 设置可见的GPU设备
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"
import numpy as np
# 创建一个复数类型的数组
lists1 = [[101,202,303],[404,505,606]]
arr1 = np.array(lists1)
print("数组arr1的数据类型是: ")
print(arr1.dtype)
print("数组arr1的数组形状是:")
print(arr1.shape)
# zeros()创建一个全0的数组
import numpy as np

# 显示一个 3 行 4 列的全零矩阵
arr1 = np.zeros((3,4))
print(arr1)
# 新建全1的数组

import numpy as np
arr1 = np.ones((3,4))
print(arr1)
# eye()可以新建等行等列的数组,并且对角线上的数值为1,其余
# 的地方为0。只需传入一个数值

import numpy as np
arr1 = np.eye(4)
print(arr1)
# identity()方法也可以新建等行等列的数组,并且对角线上的数
# 值为1,其余的地方为0
import numpy as np
arr1 = np.identity(3)
print(arr1)


# empty()可以创建没有任何具体值的数组。要用这个方法创建多维
# 数组,只需传入一个表示形状的元组
import numpy as np
arr1 = np.empty((3,4))
print(arr1)


# 这里需要注意的是,使用astype()进行数据类型转换的时候,无
# 论如何都会创建出一个新的数组,也就是原始数组的一份副本,即使
# 新的dtype与老的dtype的数据类型一致也会如此
import numpy as np
arr1 = np.array([12.5,136.7,24.6,35.5,109.8])
int_arr1 = arr1.astype(int)
print(int_arr1.dtype)
str_arr1 = arr1.astype(str)
print(str_arr1.dtype)
# NumPy的random模块对Python内置的random模块进行了补充,增加
# 了一些用于高效生成多种概率分布的样本值的方法。例如,你可以用
# normal()方法来得到一个标准高斯分布(又称正态分布)的3×3样本
# 数组。



import numpy as np
samples = np.random.normal(size=(4,4))
print(samples)
# 而Python内置的random模块则一次只能生成一个样本值。从下面
# 代码的运行结果中可以看出,如果需要产生大量的样本值,使用NumPy
# 的random模块执行时间快了不止一个数量级。
# 这段代码的主要目的是比较两种生成正态分布随机数的方法的性能。numpy 的实现明显更高效,建议优先使用 numpy 的随机数生成函数来提高性能。
from random import normalvariate
import time
import numpy as np
n = 10000000
start = time.time()
samples = [normalvariate(0,1) for _ in range(n)]
times = np.random.normal(size=n)
end = time.time()
print(end-start)

# print(samples)  直接给干崩溃了   这个代码的执行效率低下,python这个语言龟行天下






# 数组对机器学习来说,最重要的作用在于不用编写循环即可对数
# 据进行批量运算。这通常就叫作矢量化(vectorization)。大小相等
# 的数组之间的任何算术运算都会被应用到元素级。可以通过下面的代
# 码来看一下具体的情况。

import numpy as np
arr1 = np.array([[10,20,30],[7,8,9]])

# 相当于 10*10   20*20   30*30
# 相当于 7*7 8*8 9*9
multi_arr = arr1*arr1

# 数组一  减去  数组一
# 10-10 20-20 30-30
# 7-7   8-8   9-9
sub_arr = arr1 - arr1
print("大小相等的数组实现乘法")
print(multi_arr)
print("大小相等的数组实现减法")
print(sub_arr)
import numpy as np
arr1 = np.array([[10,20,30],[7,8,9]])

# 相当于 100/10 100/20  100/30
divide_arr = 100 / arr1
# 相当于 10*0.5 20*0.5 30*0.5
multi_arr = arr1 * 0.5
print("数组与标量值的除法运算")
print(divide_arr)
print("数组与标量值的乘法运算")
print(multi_arr)
# 下面先通过统计学中距平处理的例子来了解广播的原则。距平是
# 一个大气科学术语,一般是指统计学中通常所称的“离差”,也就是
# 一组数据中的某一个数与平均数之间的差。在历史上,气温距平(单
# 位为℃)是有特定含义的,它是指某地气温与同纬度平均气温之差,
# 而不是一般意义的平均值。这里以北京冬季某个时间的气温值为例,
# 进行气温距平的计算

import numpy as np                    # 导入NumPy库,用于数值计算
weathers = np.array([[20,21,22,18,19,21,22],  # 创建一个4行7列的二维数组,表示4天的天气数据
                     [18,21,23,19,18,21,13],
                     [18,19,22,21,21,17,16],
                     [15,18,20,19,21,17,18]])

print(weathers.mean(0))               # 打印每列的平均值(axis=0)

meaned = weathers - weathers.mean(0)  # 用原始数据减去均值,对数据进行去均值化处理
print(meaned)                         # 打印去均值后的数据
print(meaned.mean(0))                 # 打印去均值后数据的均值(应接近0)


import numpy as np
weathers = np.array([[20,21,22,18,19,21,22],
                     [18,21,23,19,18,21,13],
                     [18,19,22,21,21,17,16],
                     [15,18,20,19,21,17,18]])

print(weathers.mean(1).reshape((4,1)))

meaned = weathers - weathers.mean(1).reshape((4,1))

print(meaned)
print(meaned.mean(1))

推荐使用vscode notebook jupyter

这是本人的学习历程!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值