栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

认识numpy数组对象,创建numpy数组,ndarray对象的数据类型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

认识numpy数组对象,创建numpy数组,ndarray对象的数据类型

import numpy as np # 导入numpy对象

data = np.arange(12).reshape(3,4)  # 创建一维数组对象,并将一维数组对象转换为3行4列的二维数组
data

结果如下

array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

type(data) # 查看数组类型

numpy.ndarray

data.dtype  # 查看数组中元素的类型

dtype('int32')

data.size  # 查看元素个数

data.ndim # 查看维度

创建numpy数组

data1 = np.array([1,2,3]) # 通过array对象创建一维数组

data1

array([1, 2, 3])

In [12]:

data2 = np.array([[1,2,3],[4,5,6]]) # 通过array对象创建二维数组

data2

array([[1, 2, 3], [4, 5, 6]])

np.zeros((3,4)) # 创建一个全是0的3行4列的二维数组

array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

 
np.ones((3,4))

array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])

 
np.empty((5,6))  # 创建空数组对象,只是分配了内存地址,填充元素都是随机的

array([[1.06219823e-311, 1.06219205e-311, 0.00000000e+000,
        0.00000000e+000, 0.00000000e+000, 5.02034658e+175],
       [4.08537827e-033, 2.32104348e-056, 1.68612868e+160,
        6.75392013e-067, 1.47763641e+248, 1.16096346e-028],
       [7.69165785e+218, 1.35617292e+248, 1.45605741e+185,
        2.36164759e+180, 8.97799394e-067, 8.44751880e+169],
       [4.26580534e-096, 6.32299154e+233, 3.65588282e+233,
        1.74569531e+238, 1.11763132e+261, 1.16318408e-028],
       [2.24729310e+174, 1.56605686e-076, 4.75387786e-038,
        1.48220335e-071, 2.00426845e-076, 2.62459089e-306]])

 
np.arange(1,20,2)  # 通过arange生成一个等差数组

array([ 1,  3,  5,  7,  9, 11, 13, 15, 17, 19])

 
a = np.array([1,2,3,4],float)  # 创建数组时指定元素类型
array([1., 2., 3., 4.])

 
b = np.zeros((2,3),dtype='float64')

 
b.dtype
dtype('float64')

ndarray对象的数据类型

 
data_one = np.array([[1,2,3],[4,5,6]])  # 创建二维数组对象
data_one
array([[1, 2, 3],
       [4, 5, 6]])
 
data_one.dtype
dtype('int32')

数据类型的转换

float_data = data_one.astype(np.float64) # astype转变数据类型

float_data.dtype

dtype('float64')

数组运算

data1 = np.array([[1,2,3],[4,5,6]]) # 创建两个数组对象

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

data1

array([[1, 2, 3],
       [4, 5, 6]])

data2

array([[1, 3, 5],
       [2, 4, 6]])

data1 - data2   # array对象允许相加相减相乘相除,是对位运算

array([[ 0, -1, -2],
       [ 2,  1,  0]])

data1 // data2

array([[1, 0, 0],
       [2, 1, 1]], dtype=int32)

数组广播

arr1 = np.array([[0],[1],[2],[3]]) # 创建四行一列的二维数组对象

arr1

array([[0],
       [1],
       [2],
       [3]])

arr1.shape  # 数组形状
(4, 1)

arr2 = np.array([1,2,3])
arr2

array([1, 2, 3])

arr2.shape
(3,)

 
arr1 - arr2

array([[-1, -2, -3], [ 0, -1, -2], [ 1, 0, -1], [ 2, 1, 0]])

arr1 / arr2

array([[0.        , 0.        , 0.        ],
       [1.        , 0.5       , 0.33333333],
       [2.        , 1.        , 0.66666667],
       [3.        , 1.5       , 1.        ]])

a = np.array([5,2])

a
array([5, 2])

b = np.array([[1,2],[2,3]])

b
array([[1, 2],
       [2, 3]])
a - b

array([[ 4,  0],
       [ 3, -1]])

数组与标量的运算 # 标量就是常数

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

data2 = 10
arr3

array([[1, 2, 3], [4, 5, 6]])

 
arr3 - data2  # 数组对象和标量运算,也属于广播机制中的一种

array([[-9, -8, -7], [-6, -5, -4]])

arr3 / data2
array([[0.1, 0.2, 0.3],
       [0.4, 0.5, 0.6]])

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号