Numpy的基本使用详解-机器学习基础(代码均可独立运行)

Numpy是一个Python语言下的矩阵运算的包,因为机器学习中会涉及一些非常复杂的矩阵运算,使用基本的pyhon中的数据结构操作起来很麻烦,于是就诞生了很多矩阵运算的专用包,Numpy是其中使用最多的一个,举个例子,opencv的python版本中就是用了Numpy矩阵来表示图片:

我们来看一下打印结果:

本文目的是介绍Numpy最常见的一些用法,我会尝试使用最简短的代码解释清楚Numpy的用法,下面的每一段代码都可以独立运行。

 

 

1 Numpy创建数组

1.1 创建一个一维数组

import numpy as np
arr = np.array([1, 2, 3, 4, 5])

数组中的元素必须是同一个类型,如果是不同的类型,会发生自动的类型转换,如下:

import numpy as np
arr = np.array(["char", True, 3, 4, 5])
print(arr)

打印的结果如下:

显然所有的元素都被转换成了字符串类型。

 

1.2 创建多维数组

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])

 

1.3 创建指定长度的数组

第一种方式是未初始化的数组,数组元素的值是随机的,下面的代码创建了一个6行2列的int类型的数组

import numpy as np
arr = np.empty([6,2], dtype = int) 

第二种方式是已经初始化的数组,比如全0的数组或者全1的数组

import numpy as np
arr = np.zeros([4, 2])

 

 

2 Numpy中数组的读写

2.1 修改数组中的元素

import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1

 

2.2 读取数组中的元素

import numpy as np
arr = np.zeros([4, 2])
arr[0][1] = 1
print(arr[0][1])

 

2.3 尾部添加元素

import numpy as np
arr = np.zeros([6])
np.append(arr, 7)
print(arr)
arr = np.append(arr, 7)
print(arr)

这段代码的输出如下:

需要注意的两点是:

append方法的调用者是numpy本身

append不改变参数中的数组,需要将结果返回给原来的数组

 

 

3 数组整体操作

3.1 两个数组相加

import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr2 = np.array([2.5,3.5,4.5])
arr = arr1 + arr2
print(arr)

输出如下:

 

3.2 数组和常数相加

import numpy as np
arr1 = np.array([1.5,2.5,3.5])
arr = arr1 + 0.5
print(arr)

输出如下:

其它的如乘法、除法、乘方的原理相同,都是对数组里面的每一个元素单独做对应的操作

 

 

4 取出数组的指定行或者指定的列

4.1 取出一维数组中的奇数号元素

import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
index = range(0, 9, 2)
arrSig = arr[index]
print(arrSig)

 

4.2 取出二维数组中前三行

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, :])

输出如下:

 

4.2 取出二维数组中前两列

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[:, 0:2])

输出如下:

 

4.3 取出二维数组中的前两行,再从这前两行中取出前两列

import numpy as np
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(arr[0:2, 0:2])

输出如下:

先写这么多,有空再添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值