numpy库的认识以及数组的创建

时间:2023-03-10 03:41:36
numpy库的认识以及数组的创建

numpy库

numpy是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。numpy十分高效,基于NumPy的算法要比纯Python快10到100倍(甚至更快),并且使用的内存更少。

NumPy的ndarray

初步用法

导入库

import numpy as np#常规用法

生成随机矩阵

import numpy as np

data=np.random.randn(2,3)#生成一个两行三列的随机数组
print(data)

简单运算

相乘

import numpy as np

data=np.random.randn(2,3)#生成一个两行三列的随机数组
print(data)
data=data*10
print(data)

相加

import numpy as np

data=np.random.randn(2,3)#生成一个两行三列的随机数组
print(data)
data=data+data
print(data)

ndarray对象

ndarray是一个N维的数组对象,它是一个大数据集的容器,注意的是它其中元素的类型必须相同。

除此之外它具有两个属性,分别是shape和dtype。

import numpy as np

data=np.random.randn(2,3)#生成一个两行三列的随机数组
print(data.shape)#几行几列
print(data.dtype)#集合中的数据类型

创建ndarray

1.使用列表

>>> import numpy as np
>>> data1=[1,2,3,4,5]
>>> arr1=np.array(data1)
>>> arr1
array([1, 2, 3, 4, 5])

2.列表嵌套

>>> data2=[[1,2,3,4],[5,6,7,8]]
>>> arr2=np.array(data)
>>> arr2=np.array(data2)
>>> arr2
array([[1, 2, 3, 4],
[5, 6, 7, 8]])

对应的维度

>>> arr2.ndim
2
>>> arr2.shape
(2, 4)

3.创建空数组

>>> import numpy as np
>>> np.zeros(10)#创建一维数组
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> np.zeros((3,6))#创建多维数组,三行六列
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])

4.创建纯一数组

>>> np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
>>> np.ones((3,6))
array([[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.]])

5.使用empty创建数组

>>> np.empty((2,3,2))
array([[[7.70742408e-322, 0.00000000e+000],
[0.00000000e+000, 0.00000000e+000],
[8.97323639e-315, 8.97323686e-315]], [[8.97132801e-315, 8.97321639e-315],
[0.00000000e+000, 0.00000000e+000],
[0.00000000e+000, 0.00000000e+000]]])

注意:认为np.empty会返回全0数组的想法是不安全的。很多情况下(如前所示),它返回的都是一些未初始化的垃圾值。

6.使用arange创建

arange是Python内置函数range的数组版:

>>> np.arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])