首页Python【Python数据分析】3...

【Python数据分析】3.ndarray对象生成


本系列文章配套代码获取有以下三种途径:

  • 可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):

https://returu.github.io/Python_Data_Analysis/lab/index.html
链接:https://pan.baidu.com/s/1MYkeYeVAIRqbxezQECHwcA?pwd=mnsj 提取码:mnsj
  • 前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Data_Analysis

—————————————————

1.生成ndarray:

1.1 使用array函数生成ndarray:

生成数组最简单的方法就是使用array函数,array函数接收任意的序列型对象(sequence-like object),生成一个Numpy数组。

1# 当np.array()没有显式地指定dtype时,numpy将根据数据情况字段推断生成一个数据类型
2x = np.array(list/tuple)
3x = np.array(list/tuple,dtype=np.float32)

例如,使用列表,嵌套列表,元祖数据生成ndarray数组。

1>>> np.array([1.1 , 2.2 , 3.3 , 4.4])
2array([1.1, 2.2, 3.3, 4.4])
3
4>>> np.array([[1.1 , 2.2 , 3.3 , 4.4] , [5.5 , 6.6 , 7.7 , 8.8]])
5array([[1.1, 2.2, 3.3, 4.4],
6       [5.5, 6.6, 7.7, 8.8]])
7
8>>> np.array((1.1 , 2.2 , 3.3 , 4.4))
9array([1.1, 2.2, 3.3, 4.4])

1.2 使用生成函数生成ndarray:

除了array函数,数组生成函数还包括以下几种:

函数
说明
np.array() —-
np.asarray() 将输入转换为ndarray,但是如果输入已经是ndarray则不再复制
np.arange(n) 类似range()函数,返回ndarray类型,元素从0到n-1
np.ones(shape) 根据shape生成一个全1数组,shape是元祖类型
np.ones_like(a) 根据数组a的形状生成一个全1数组
np.zeros(shape) 根据shape生成一个全0数组,shape是元祖类型
np.zeros_like(a)
根据数组a的形状生成一个全0数组
np.empty(shape) 根据shape生成一个没有初始化数值的空数组,shape是元祖类型
np.empty_like(a) 根据数组a的形状生成一个没有初始化数值的空数组
np.full(shape,val) 根据shape生成一个数组,每个元素都是val
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val
np.eye(n) 创建一个正方的n×n单位矩阵,对角线为1,其余为0
np.linspace(start, stop, num) 根据起始值及间隔数量num等间距地填充数据,形成数组
TIPS:使用numpy.empty生成一个全部为0的数组是不安全的。该函数返回未初始化的内存,因此可能包含非零的 “垃圾 “值。只有当你打算用数据填充新的数组时,你才应该使用该函数。

 1# np.asarray()——将输入转换为ndarray
2>>> np.asarray([1.1 , 2.2 , 3.3 , 4.4])
3array([1.12.23.34.4])
4
5# np.asarray()——将输入转换为ndarray,但是如果输入已经是ndarray则不再复制
6>>> arr = np.array([5.5 , 6.6 , 7.7 , 8.8])
7>>> np.asarray(arr)
8array([5.56.67.78.8])
9
10# np.arange(n)——类似range()函数,返回ndarray类型,元素从0到n-1
11>>> arr = np.arange(10)
12>>> arr
13array([0123456789])
14
15# np.ones(shape)——根据shape生成一个全1数组,shape是元祖类型
16>>> np.ones((2,3))
17array([[1., 1., 1.],
18       [1., 1., 1.]]
)
19
20# np.ones_like(a)——根据数组a的形状生成一个全1数组
21>>> arr = np.array([[[1.1 , 2.2] , [3.3 , 4.4]] , [[5.5 , 6.6] , [7.7 , 8.8]]])
22>>> arr
23array([[[1.1, 2.2],
24        [3.3, 4.4]]
,
25
26       [[5.5, 6.6],
27        [7.7, 8.8]]
])
28
29>>> np.ones_like(arr)
30array([[[1., 1.],
31        [1., 1.]]
,
32
33       [[1., 1.],
34        [1., 1.]]
])
35
36# np.zeros(shape)——根据shape生成一个全0数组,shape是元祖类型
37>>> np.zeros((2,3))
38array([[0., 0., 0.],
39       [0., 0., 0.]]
)
40
41# np.zeros_like(a)——根据数组a的形状生成一个全0数组
42>>> arr = np.array([[[1.1 , 2.2] , [3.3 , 4.4]] , [[5.5 , 6.6] , [7.7 , 8.8]]])
43>>> np.zeros_like(arr)
44array([[[0., 0.],
45        [0., 0.]]
,
46
47       [[0., 0.],
48        [0., 0.]]
])
49
50# np.empty(shape)——根据shape生成一个没有初始化数值的空数组,shape是元祖类型
51>>> np.empty((2,3))
52array([[0., 0., 0.],
53       [0., 0., 0.]]
)
54
55# np.empty_like(a)——根据数组a的形状生成一个没有初始化数值的空数组,有可能会返回‘垃圾值’
56>>> arr = np.array([[[1.1 , 2.2] , [3.3 , 4.4]] , [[5.5 , 6.6] , [7.7 , 8.8]]])
57>>> np.empty_like(arr)
58array([[[1.1, 2.2],
59        [3.3, 4.4]]
,
60
61       [[5.5, 6.6],
62        [7.7, 8.8]]
])
63
64# np.full(shape,val)——根据shape生成一个数组,每个元素都是val
65>>> np.full((2,3) , 99)
66array([[99, 99, 99],
67       [99, 99, 99]]
)
68
69# np.full_like(a,val)——根据数组a的形状生成一个数组,每个元素值都是val
70>>> arr = np.array([[[1.1 , 2.2] , [3.3 , 4.4]] , [[5.5 , 6.6] , [7.7 , 8.8]]])
71>>> np.full_like(arr , 99)
72array([[[99., 99.],
73        [99., 99.]]
,
74
75       [[99., 99.],
76        [99., 99.]]
])
77
78# np.eye(n)——创建一个正方的n×n单位矩阵,对角线为1,其余为0
79>>> np.eye(5)
80array([[1., 0., 0., 0., 0.],
81       [0., 1., 0., 0., 0.],
82       [0., 0., 1., 0., 0.],
83       [0., 0., 0., 1., 0.],
84       [0., 0., 0., 0., 1.]]
)
85
86# np.linspace(start, stop, num, endpoint, retstep, dtype)
87np.linspace(0,10 , num=5)
88>>> array([ 0. ,  2.5,  5. ,  7.510. ])


2.ndarray对象的属性:

通过下述函数可以查看数组的相应属性信息。

属性 说明
.ndim 秩,即轴的数量或维度的数量
.shape ndarray对象尺度,对于矩阵,n行m列
.size ndarray对象元素的个数,相当于.shape中n×m的值
.dtype ndarray对象的元素类型
.itemsize ndarray对象中每个元素的大小,以字节为单位


 1>>> arr = np.array([[[1.1 , 2.2] , [3.3 , 4.4]] , [[5.5 , 6.6] , [7.7 , 8.8]]])
2>>> arr
3array([[[1.1, 2.2],
4        [3.3, 4.4]]
,
5
6       [[5.5, 6.6],
7        [7.7, 8.8]]
])
8
9# 轴的数量或维度的数量
10>>> arr.ndim
113
12
13# ndarray对象尺度
14>>> arr.shape
15(222)
16
17# ndarray对象元素的个数
18>>> arr.size
198
20
21# ndarray对象的元素类型
22>>> arr.dtype
23dtype('float64')
24
25# ndarray对象中每个元素的大小,以字节为单位
26>>> arr.itemsize
278


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments