人工智能——numpy
人工智能—numpy学习
numpy是一个开源的python科学计算扩展库,主要用来处理任意维度数组和矩阵。相同的任务,使用numpy比直接用python的基本数据结构更加简单高效。
安装
pip install numpy
导入
import numpy as np
一、 ndarray和array
使用Numpy操作的数据基本对象就是ndarray
array()是其中的一种创建 ndarray对象的函数
ndarray和array的区别
- ndarray是一个类,np.ndarray()其实是它的构造函数,得到一个 ndarray 对象,而 array() 其实是为了便于创建一个 ndarray对象的函数。两者得到的结果其实是一样的。
- np.ndarray()构造函数相对更麻烦也更低级一些,使用默认构造函数创建的ndarray对象的数组元素是随机值,而 numpy提供了一系列的创建 ndarray对象的函数,array()就是其中的一种;使用来构造 ndarray对象会更方便一些。
In [1]: nu_1 = np.array([[1,2,3],[4,5,6]])
print(type(nu_1))
print(nu_1.dtype, '\n')
nu_2 = np.ndarray(shape=(2,3), dtype=np.int32)
print(type(nu_2))
print(nu_2.dtype)
Out[1]: <class 'numpy.ndarray'>
int32
<class 'numpy.ndarray'>
int32
注意:Numpy 数组必须是同质数组,即数组中每个元素的数据类型都相同
二、 函数用法
numpy.empty() 创建一个指定形状、数据类型且未初始化的数组
numpy.zeros() 创建指定大小的数组,数组元素以 0 来填充
numpy.ones() 创建指定形状的数组,数组元素以 1 来填充
numpy.ones_like() 返回一个用1填充的跟输入形状和类型一致的数组
numpy.arange() 创建按规则生成的数组
numpy.asarray() 生成一个和参数大小相同的数组
numpy.expand_dims() 拓展维度
numpy.squeeze() 删除维度
三、代码举例
In [1]: import numpy as np
In [2]: x = np.empty([2,2], dtype = int)
print (x)
Out[2]: [[ 454200021 981447334]
[1046534076 1965585521]]
In [3]: a = np.zeros(4)
print(a)
b = np.zeros((2,3), dtype = np.float32)
print(b)
c = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'f4')])
print(c)
Out[3]: [0. 0. 0. 0.]
[[0. 0. 0.]
[0. 0. 0.]]
[[(0, 0.) (0, 0.)]
[(0, 0.) (0, 0.)]]
In [4]: a = np.ones(5)
print(a)
b = np.ones((4,2), dtype=np.int32)
print(b)
Out[4]: [1. 1. 1. 1. 1.]
[[1 1]
[1 1]
[1 1]
[1 1]]
In [5]: temp = np.zeros((2, 2))
c = np.ones_like(temp)
print(temp, '\n' * 2, c)
Out[5]: [[0. 0.]
[0. 0.]]
[[1. 1.]
[1. 1.]]
In [6]: a = np.arange(5)
print(a, type(a))
b = np.arange(1, 5)
c = np.arange(1, 5, 2)
d = np.arange(1, 5.2, 0.6)
print('\n', b, '\n\n', c, '\n\n', d)
Out[6]: [0 1 2 3 4] <class 'numpy.ndarray'>
[1 2 3 4]
[1 3]
[1. 1.6 2.2 2.8 3.4 4. 4.6 5.2]
# 注意:此处由于浮点益处,系统中保存的值为5.20000001,所以结果能取到5.2
In [7]: a = [1, 2, 3, 4]
new_arr = np.asarray(a)
print(new_arr)
new_arr = np.asarray(a, dtype=np.float32)
print(new_arr)
Out[7]: [1 2 3 4]
[1. 2. 3. 4.]
In [8]: arr = np.arange(1, 13).reshape(3,4)
print(arr)
print(np.sum(arr))
print(arr.sum())
print(np.cumsum(arr)) # 计算所有元素的累计和
print(np.cumprod(arr)) # 计算所有元素的累计积
Out[8]: [[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
78
78
[ 1 3 6 10 15 21 28 36 45 55 66 78]
[ 1 2 6 24 120 720 5040
40320 362880 3628800 39916800 479001600]
In [9]: arr = np.arange(4).reshape(2,2)
arr
Out[9]: array([[0, 1],
[2, 3]])
In [10]: new = np.expand_dims(arr, axis=0) #在0轴拓展一个维度
new
Out[10]: array([[[0, 1],
[2, 3]]])
In [11]: arr.shape
Out[11]: (2, 2)
In [12]: new.shape
Out[12]: (1, 2, 2)
In [13]: arr = array([[[0 1]
[2 3]]])
new_arr = np.squeeze(arr, axis=0) #删除0轴的维度
In [14]: print(new_arr)
Out[14]: [[0 1]
[2 3]]
In [15]: print(new_arr.shape)
Out[15]: (2, 2)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfckcb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01