机器学习(二) Numpy 入门

本文深入探讨数据科学领域的五大核心Python库:Numpy、Scipy、Pandas、Matplotlib和Scikit-learn,详细讲解Numpy的基础知识,包括矩阵、向量、标量的概念,以及如何使用Numpy进行数组操作,如创建、索引和切片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据科学领域5个最佳的Python库

Numpy/Scipy/Pandas/Matplotlib/Scikit-learn(TensorFlow)

Numpy(一)

矩阵回顾:

基本概念:

  • 矩阵:矩阵的数组,即二维数组,其中向量和标量都是矩阵的特例
  • 向量:是指1xn或者nx1的矩阵
  • 标量:1x1的矩阵
  • 数组:N维的数组,是矩阵的延伸
  • 特殊矩阵
  • 全0全1矩阵
  • 单位矩阵
  • 数组乘法(点乘)
  • 数组乘法(点乘)是对应元素质之间的乘法

#import numpy as np

#一维数组

list_1=[1,2,3,4]

array1=np.array(list_1)

array1
Out: array([1, 2, 3, 4])

# 二维数组

list_2=[5,6,7,8]

array2=np.array([list_1,list_2])

array2

Out: array([[1, 2, 3, 4], [5, 6, 7, 8]])

array2.shape #数组的维度,对于矩阵,n 行 m 列

Out: (2, 4)

array2.size #数组元素的总个数,相当于 .shape 中 n*m 的值

Out: 8

array2.dtype  #ndarray 对象的元素类型

Out:dtype('int64')

#转换类型

array3=np.array([[1.0,2,3],[4.0,5,6]])

array3
Out[7]: 
array([[1., 2., 3.],
       [4., 5., 6.]])

#间隔为2

array4 = np.arange(1,10,2)

array4
Out[11]: array([1, 3, 5, 7, 9])

#全0矩阵

np.zeros(5)

np.zeros([2,3])

#创建单位矩阵

np.eye(5)

#数组切片和索引

a = np.arange(10)

s = slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2 print (a[s])

b = a[2:7:2] # 从索引 2 开始到索引 7 停止,间隔为 2

print (a[s])

Out:[2 4 6]

b = a[2:7:2] # 从索引 2 开始到索引 7 停止,间隔为 2

#获取数组中(0,0),(1,1)和(2,0)位置处的元素。

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

y = x[[0,1,2], [0,1,0]]

print (y)

Out:[1 4 5]

#实例获取了 4X3 数组中的四个角的元素。 行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]。

x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) 
print ('我们的数组是:' ) 
print (x) 
print ('\n') 
rows = np.array([[0,0],[3,3]]) 
cols = np.array([[0,2],[0,2]])
y = x[rows,cols] 
print ('这个数组的四个角元素是:') 
print (y)
我们的数组是:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
这个数组的四个角元素是:
[[ 0  2]
 [ 9 11]]

#借助切片 : 或 … 与索引数组组合。

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

b = a[1:3, 1:3]  #第1行到第2行,第1列到第2列

c = a[1:3,[1,2]] #第1行到第2行,第1,第2列

d = a[...,1:] #切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同

print(b) print(c) print(d)

Out:

[[5 6]
 [8 9]]
[[5 6]
 [8 9]]
[[2 3]
 [5 6]
 [8 9]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值