人工智能——numpy

编程入门 行业动态 更新时间:2024-10-07 13:14:40

<a href=https://www.elefans.com/category/jswz/34/1768980.html style=人工智能——numpy"/>

人工智能——numpy

人工智能—numpy学习

numpy是一个开源的python科学计算扩展库,主要用来处理任意维度数组和矩阵。相同的任务,使用numpy比直接用python的基本数据结构更加简单高效。


安装

pip install numpy

导入

import numpy as np	

一、 ndarray和array

使用Numpy操作的数据基本对象就是ndarray
array()是其中的一种创建 ndarray对象的函数
ndarray和array的区别

  1. ndarray是一个类,np.ndarray()其实是它的构造函数,得到一个 ndarray 对象,而 array() 其实是为了便于创建一个 ndarray对象的函数。两者得到的结果其实是一样的。
  2. 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.2In [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]]7878[ 1  3  6 10 15 21 28 36 45 55 66 78][        1         2         6        24       120       720      504040320    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)

更多推荐

人工智能——numpy

本文发布于:2024-02-13 06:31:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757391.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:人工智能   numpy

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!