# 机器学习-数据科学库-day3

numpy学习

## numpy创建数组(矩阵)

### 练习


import numpy as np
import random

t1=np.array([1,2,3,4,5])
print(t1)
print(type(t1))

t2=np.array(range(10))
print(t2)
print(type(t2))

t3=np.arange(1,10,2)
print(t3)
print(type(t3))
print(t3.dtype)
print("*"*20)

t4=np.array(range(1,4),dtype="f8")
print(t4)
print(t4.dtype)

t5=np.array([1,1,0,0,1,0,1],dtype=bool)
print(t5)
print(t5.dtype)

t6=t5.astype("int8")
print(t6)
print(t6.dtype)

t7=np.array([random.random() for i in range(10)])
print(t7)
print(t7.dtype)

t8=np.round(t7,2)
print(t8)
print(t8.dtype)

print(np.arange(0,10).reshape(2,5))


C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day02/page58.py
[1 2 3 4 5]
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
<class 'numpy.ndarray'>
[1 3 5 7 9]
<class 'numpy.ndarray'>
int32
********************
[1. 2. 3.]
float64
[ True  True False False  True False  True]
bool
[1 1 0 0 1 0 1]
int8
[0.53470254 0.68531382 0.08348858 0.55545799 0.21017324 0.92818368
0.20948581 0.89012421 0.35591318 0.06539644]
float64
[0.53 0.69 0.08 0.56 0.21 0.93 0.21 0.89 0.36 0.07]
float64
[[0 1 2 3 4]
[5 6 7 8 9]]

Process finished with exit code 0


## 数组的切片

### numpy读取数据

CSV:Comma-Separated Value,逗号分隔值文件

### ; numpy读取和存储数据

import numpy as np

print(t1)
print("*"*100)
print(t2)



C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day03/page74.py
[[4394029  320053    5931   46245]
[7860119  185853   26679       0]
[5845909  576597   39774  170708]
...

[ 142463    4231     148     279]
[2162240   41032    1384    4737]
[ 515000   34727     195    4722]]
****************************************************************************************************
[[4394029 7860119 5845909 ...  142463 2162240  515000]
[ 320053  185853  576597 ...    4231   41032   34727]
[   5931   26679   39774 ...     148    1384     195]
[  46245       0  170708 ...     279    4737    4722]]

Process finished with exit code 0



### numpy中的转置

.transpose, .T, .swapaxes(1,0)


import numpy as np

t2=np.arange(24).reshape(4,6)

t3=t2.transpose()
t4=t2.T
t5=t2.swapaxes(1,0)

print(t2)
print("*"*100)
print(t3)
print("*"*100)
print(t4)
print("*"*100)
print(t5)


C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day03/test-transpose.py
[[ 0  1  2  3  4  5]
[ 6  7  8  9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
****************************************************************************************************
[[ 0  6 12 18]
[ 1  7 13 19]
[ 2  8 14 20]
[ 3  9 15 21]
[ 4 10 16 22]
[ 5 11 17 23]]
****************************************************************************************************
[[ 0  6 12 18]
[ 1  7 13 19]
[ 2  8 14 20]
[ 3  9 15 21]
[ 4 10 16 22]
[ 5 11 17 23]]
****************************************************************************************************
[[ 0  6 12 18]
[ 1  7 13 19]
[ 2  8 14 20]
[ 3  9 15 21]
[ 4 10 16 22]
[ 5 11 17 23]]

Process finished with exit code 0


### numpy中的clip(裁剪)

#### ; 练习


t1=np.arange(44).reshape(11,4)
print(t1[2])
print("*"*100)

print(t1[2:])
print("*"*100)

print(t1[[2,8,10]])
print("*"*100)

print(t1[:,1])

print(t1[:,2:])

print(t1[:,[0,2]])

a= t1[2,3]
print(a)
print(type(a))

b=t1[2:5,1:4]
print(b)
print(type(b))

c=t1[[0,2,2],[0,1,3]]
print(c)

t8=np.arange(24).reshape(4,6)
print(t8)
print(t8<10)
t8[t8<10]=0
print(t8)

print(np.where(t80,100,300))



C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day03/page74.py
[ 8  9 10 11]
****************************************************************************************************
[[ 8  9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]
[28 29 30 31]
[32 33 34 35]
[36 37 38 39]
[40 41 42 43]]
****************************************************************************************************
[[ 8  9 10 11]
[32 33 34 35]
[40 41 42 43]]
****************************************************************************************************
[ 1  5  9 13 17 21 25 29 33 37 41]
[[ 2  3]
[ 6  7]
[10 11]
[14 15]
[18 19]
[22 23]
[26 27]
[30 31]
[34 35]
[38 39]
[42 43]]
[[ 0  2]
[ 4  6]
[ 8 10]
[12 14]
[16 18]
[20 22]
[24 26]
[28 30]
[32 34]
[36 38]
[40 42]]
11
<class 'numpy.int32'>
[[ 9 10 11]
[13 14 15]
[17 18 19]]
<class 'numpy.ndarray'>
[ 0  9 11]
[[ 0  1  2  3  4  5]
[ 6  7  8  9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[ True  True  True  True  True  True]
[ True  True  True  True False False]
[False False False False False False]
[False False False False False False]]
[[ 0  0  0  0  0  0]
[ 0  0  0  0 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[100 100 100 100 100 100]
[100 100 100 100 300 300]
[300 300 300 300 300 300]
[300 300 300 300 300 300]]

Process finished with exit code 0



### numpy中的nan和inf

nan(NAN,Nan):not a number表示不是一个数字

inf(-inf,inf):infinity,inf表示正无穷，-inf表示负无穷

### ; ndarry缺失值填充均值


import numpy as np

def fill_ndarray(t1):

for i in range(t1.shape[1]):
temp_col=t1[:,i]
nan_num=np.count_nonzero(temp_col!=temp_col)
if nan_num!=0:

temp_not_nan_col=temp_col[temp_col==temp_col]

temp_col[np.isnan(temp_col)]=temp_not_nan_col.mean()

return t1

if __name__=="__main__":
t1 = np.arange(12).reshape(3, 4).astype("float")

t1[1, 2:] = np.nan
print(t1)
fill_ndarray(t1)
print(t1)


C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day03/page87.py
[[ 0.  1.  2.  3.]
[ 4.  5. nan nan]
[ 8.  9. 10. 11.]]
[[ 0.  1.  2.  3.]
[ 4.  5.  6.  7.]
[ 8.  9. 10. 11.]]

Process finished with exit code 0



### 动手练习


import numpy as np
from matplotlib import pyplot as plt

t_us_comment=t_us[:,-1]

t_us_comment=t_us_comment[t_us_comment5000]

print(t_us_comment.max(),t_us_comment.min())

d=50

bin_nums = (t_us_comment.max()-t_us_comment.min())//d

plt.figure(figsize=(12,8),dpi=80)

plt.hist(t_us_comment,bin_nums)

plt.show()

print(t_us_comment)
print(bin_nums)



4995 0
[   0 3040 1071 ...  279 4737 4722]
99




import numpy as np
from matplotlib import pyplot as plt

t_uk=t_uk[t_uk[:,1]500000]

t_uk_comment=t_uk[:,-1]
t_uk_like=t_uk[:,1]

plt.figure(figsize=(20,8),dpi=80)

plt.scatter(t_uk_like,t_uk_comment)

plt.show()



## 数组的拼接

### 动手练习


import numpy as np
import day03

zero_data=np.zeros((us_data.shape[0],1)).astype(int)
ones_data=np.ones((uk_data.shape[0],1)).astype(int)

us_data=np.hstack((us_data,zero_data))
uk_data=np.hstack((uk_data,ones_data))

final_data=np.vstack((us_data,uk_data))
print(final_data)



C:\ANACONDA\python.exe C:/Users/Lenovo/PycharmProjects/Code/day04/page94.py
[[4394029  320053    5931   46245       0]
[7860119  185853   26679       0       0]
[5845909  576597   39774  170708       0]
...

[ 109222    4840      35     212       1]
[ 626223   22962     532    1559       1]
[  99228    1699      23     135       1]]

Process finished with exit code 0



## numpy更多好用的方法

1.获取最大值最小值的位置
np.argmax(t,axis=0)
np.argmin(t,axis=1)
2.创建一个全0的数组: np.zeros((3,4))
3.创建一个全1的数组:np.ones((3,4))
4.创建一个对角线为1的正方形数组(方阵)：np.eye(3)

## numpy生成随机数

### ; 分布的补充

1.均匀分布：在相同的大小范围内的出现概率是等可能的

2.正态分布：呈钟型，两头低，中间高，左右对称

import numpy as np

np.random.seed(6)
t=np.random.randint(0,20,(3,4))
print(t)


[[10  9  3 10]
[13 15 10 16]
[ 1 11 13 15]]



### numpy的注意点copy和view

1. a=b 完全不复制，a和b相互影响
2. a =b[:],视图的操作，一种切片，会创建新的对象a，但是a的数据完全由b保管，他们两个的数据变化是一致的，
3. a =b.copy(),复制，a和b互不影响

## day2 & day3 小结:

Original: https://blog.csdn.net/weixin_47049321/article/details/124185278
Author: weixin_47049321
Title: 机器学习-数据科学库-day3

(0)

### 大家都在看

• #### ChatGPT使用初体验

啊哦~你想找的内容离你而去了哦 内容不存在，可能为如下原因导致： ① 内容还在审核中 ② 内容以前存在，但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

人工智能 2023年7月31日
078
• #### 整理了 47 个 Python 人工智能库

Python 是人工智能（机器学习）的首选编程语言，它拥有众多模块，能完成人工智能开发的所有环节，没有任何一种语言使用起来如此顺手。今天就由我带着大家揭开人工智能的神秘面纱。 主页…

人工智能 2023年6月24日
074
• #### 降维算法实战项目（2）—使用PCA对图像降维（Python代码+数据集）

在这部分练习中，我们将学习人脸图像上运行PCA，看看如何在实践中使用它来减少维度。 老规矩，先放出数据集： 链接：https://pan.baidu.com/s/1R0oiqoWH…

人工智能 2023年6月15日
0175
• #### Matlab传递函数的几种生成方式

1：传递函数的几种Matlab输入方式 1.1、显示多项式的传递函数matlab语句：分子分母的各项式系数按照降次排序分别计入num=[ ]，den=[ ]中，缺项系数补零。传递函…

人工智能 2023年6月18日
098
• #### 【pytorch】CGAN编程实现

CGAN介绍 由于原始GAN生成的图像是随机的，不可预测的，无法控制网络输出特定的图片， 生成目标类别不明确，可控性不强。针对原始GAN不能生成具有特定属性的图片的问题， Mehd…

人工智能 2023年7月23日
0108
• #### 图像拼接（Image Stiching）方向论文微总结

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

人工智能 2023年5月26日
081
• #### 【中值滤波和最邻近插值(matlab)】

Author:HanDi上海某高校遥感专业 工科男相信积微者速成，相信分享的力量CSDN@这可真是难为我了 最近在学习matlab图像处理的内容。有些小练习就放在上面，复习自用。 …

人工智能 2023年6月22日
085
• #### 【YOLOV5-5.x源码解读】train.py

这个文件是yolov5的训练脚本。 import argparse import logging import math import os import random impor…

人工智能 2023年7月24日
073
• #### 视觉神经网络模型优秀开源工作：PyTorch Image Models（timm）库

Py Torch Image Models，简称timm，是一个巨大的 PyTorch代码集合，包括了一系列： image models layers utilities opti…

人工智能 2023年6月17日
0109
• #### yolov5——训练策略

yolov5——训练策略 前言 1. 训练预热——Warmup * 1.1 what是Warmup 1.2 why用Warmup 1.3 常见Warmup类型 1.4 yolov5…

人工智能 2023年6月16日
0117
• #### 入耳式蓝牙耳机哪个牌子好用？四款高品质音乐游戏耳机

在过去几年中，无线耳机市场几乎呈爆炸式增长。虽然Apple 的 AirPods系列仍然是很多人的第一选择，但一副好的耳机比品牌更重要。目前有许多优秀的蓝牙耳机可供选择，其中一些甚至…

人工智能 2023年5月25日
080
• #### 9 概率图模型

9 概率图模型 1 背景 * 1.1 概率的基本性质 1.2 条件独立性 1.3 概率图的算法分类 – 1.3.1 Representation 1.3.2 Infer…

人工智能 2023年6月18日
089
• #### 脉冲神经网络（SNN）论文阅读（三）—–高精度低时延的ANN转换SNN方法

原文链接：CSDN-脉冲神经网络（SNN）论文阅读（三）—–高精度低时延的ANN转换SNN方法 Optimal ANN-SNN Conversion for…

人工智能 2023年6月16日
0105
• #### rasterio的安装和使用

很久没更新公众号啦，给看客老爷们汇报下我最近都在忙啥。由于工作和自己的原因，需要搞一点科研，这一直是我的短板。所以我浅学了一下大学数学（线代、高数和概率论），准备结合Python做…

人工智能 2023年6月23日
086
• #### Hugging Face快速入门（重点讲解模型(Transformers)和数据集部分(Datasets)）

文章目录 本文内容 HuggingFace简介 Hugging Face模型讲解 * Transforms简介 Transformers安装 使用Transformers进行推理 …

人工智能 2023年6月15日
0164
• #### 目标检测-损失函数Loss

文章目录 * – 前言 – 范数损失函数 – IOU损失函数 – + IOU loss （2016） + GIOU loss （20…

人工智能 2023年7月9日
0136