网站首页 > 基础教程 正文
Python NumPy关注的是数值计算,如果没有特别指定,数据类型基本都是float64
##数组创建函数
array将输入数据(列表、元组、数组或其他序列类型)转换为ndarray
asarray将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制
arange类似于内置的range,但返回的是一个ndarray而不是列表
ones、ones_like根据指定的形状和dtype创建一个全1数组。ones_like以另一个
数组为参数,并根据其形状和dtype创建一个全1数组
zeros、zeros_like 和onse类似,只不过产生的是全0 数组
empty、empty_like创建新数组,只分配内存空间但不填充任何值
eye、identity创建一个正方的 N * N单位矩阵(对角线为1,其余为0)
ndarray的数据类型
dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息。
ipdb> arr11 = np.array([1, 2, 3], dtype=np.float64)
ipdb> arr11
array([1., 2., 3.])
ipdb> arr12 = np.array([1, 2, 3], dtype=np.int32)
ipdb> arr12
array([1, 2, 3])
##可以通过ndarray的astype方法显示地转换dtype:
ipdb> arr = np.array([1, 2, 3, 4, 5])
ipdb> arr.dtype
dtype('int32')
ipdb> float_arr = arr.astype(np.float64)
ipdb> float_arr
array([1., 2., 3., 4., 5.])
ipdb> float_arr.dtype
dtype('float64')
##如果将浮点数转换成整数,则小数部分将会被截断:
ipdb> arr = np.array([3.7, -1.2, -2.0, 2.6, 11.2, 10.9])
ipdb> arr.astype(np.int32)
array([ 3, -1, -2, 2, 11, 10])
ipdb> arr.dtype
dtype('float64')
##如果字符串数组表示的全是数组,也可以用astype将其转换我数值形式
ipdb> str_arr = np.array(['1.24', '-8.7', '343'], dtype=np.string_)
ipdb> str_arr
array(['1.24', '-8.7', '343'], dtype='|S4')
ipdb> str_arr.astype(float)
array([ 1.24, -8.7 , 343. ])
##数组的dtype还有另外一个用法:
ipdb> intarr = np.arange(10)
ipdb> intarr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ipdb> arr1 = np.array([.22, .270, .33, .22, 44, .55], dtype=np.float64)
ipdb> arr1
array([ 0.22, 0.27, 0.33, 0.22, 44. , 0.55])
##使用astype无论如何都会创建一个新的数组
ipdb> intarr.astype(arr1.dtype)
array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
##数组和标量之间的运算
##不用循环数组就能对数据执行批量运算的过程叫做矢量化
##大小相等的数组之间的任何算术运算都会将运算应用到元素级
ipdb> arr = np.array([[1., 2., 3.], [4., 5., 6.,]])
ipdb> arr
array([[1., 2., 3.],
[4., 5., 6.]])
ipdb> arr * arr
array([[ 1., 4., 9.],
[16., 25., 36.]])
##同样,数组与标量的算术运算也会将那个变量值传播到各个元素:
ipdb> arr
array([[1., 2., 3.],
[4., 5., 6.]])
ipdb> arr + 1
array([[2., 3., 4.],
[5., 6., 7.]])
ipdb> arr * 0.5
array([[0.5, 1. , 1.5],
[2. , 2.5, 3. ]])
##不同大小的数组之间的运算叫做广播。
猜你喜欢
- 2024-10-12 一文掌握Numpy矩阵 numpy矩阵乘法实现原理
- 2024-10-12 矩阵运算库:Numpy 矩阵运算库不支持点乘
- 2024-10-12 Python 的整数与 Numpy 的数据溢出
- 2024-10-12 整理20个Pandas统计函数 pandas函数汇总
- 2024-10-12 一文搞定Pandas核心概念之Series pandas的两大核心
- 2024-10-12 人工智能深度学习基础——Numpy模块知识汇总
- 2024-10-12 关于类型为numpy,TensorFlow.tensor,torch.tensor的shape变化
- 2024-10-12 Numpy基础用法汇总 numpy基础及取值操作
- 2024-10-12 想学好Python数据分析,一定要掌握的重要模块之numpy
- 2024-10-12 numpy基础之ndarray的数据类型dtype
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)