1.1创建一维数组
import numpy as np
data=np.array([1,2,3,4])
print(data)
1.2创建创建二维数组(矩阵)array
import numpy as np
data=np.array([[1,2,3,4],[4,5,6,7]])
print(data)
1.3创建全0数组
shape属性代表形状 shape(2,5) 就代表创建2行5列的全零数组
创建全零数组的用途是初始化一个具有特定形状和大小的数组,其中所有元素都设置为0。
在处理图像或其他数据时,全零数组可以用作初始值或占位符。
例如,假设我们要读取一个尺寸为(255,255,255)的图片,我们可以创建一个相同维度的
全零数组,然后将图片读入该数组进行填充。这样做的好处是,我们可以直接将原始图像数据
存储在全零数组中,而无需担心数据溢出或其他问题。
import numpy as np
#shape代表形状,比如我这里创建的就是5行三列的2维数组
data=np.zeros(shape=(5,3))
print(data)
1.4创建全1数组
创建全1数组的用途是初始化一个具有特定形状和大小的数组,其中所有元素都设置为1。在处
理一些数学问题或算法时,全1数组可以用作初始值或占位符。
例如,假设我们要计算一个矩阵与自身的转置相乘的结果,我们可以创建一个与输入矩阵相同维度的全1数组,然后将输入矩阵读入该数组进行填充。这样做的好处是,我们可以直接将原始矩阵数据存储在全1数组中,而无需担心数据溢出或其他问题。
import numpy as np
#shape代表形状,比如我这里创建的就是5行三列的2维数组
data=np.ones(shape=(5,3))
print(data)
1.5创建全空数组
创建出来的全空数组中的数据都是无限小的、无限接近于0但不是0,这方便我们数学上的一些操作
import numpy as np
#shape代表维度,比如我这里创建的就是5行三列的2维数组
data=np.empty(shape=(5,3))
print(data)
1.6 创建有连续序列的数组 arange
数组从10开始步长为2,所以创建出来数组元素就是10,12,14
import numpy as np
data = np.arange(10,16,2) # 10-16的数据,步长为2
print(data)
1.7 创建有连续间隔的数组 linspace
可以称为线性等分向量(linear space),在一个指定区间内按照指定的步长,将区间均等分,生成的是一个线段类型的数组。生成的线性间隔数据中,是有把区间的两端加进去的
import numpy as np
# 创建线段型数据
data= np.linspace(1,10,20) # 开始端1,结束端10,且分割成20个数据,生成线段
print(data)
1.8创建随机数组
创建随机数组的用途是初始化一个具有特定形状和大小的数组,其中所有元素都是随机生成的。在处理一些需要模拟随机数据的情况时,随机数组可以用作占位符或测试数据。
import numpy as np
data = np.random.rand(3,4)
print(data)
这里我们还可以用另外一种方法创建数组,这种方法很灵活,也好用
这段代码使用NumPy库创建了一个4行5列的随机整数数组,其中每个元素的值在2到5之间
import numpy as np
data=np.random.randint(2,5,size=(4,5));
print(data)
1.9改变数组形状
这个怎么理解呢,比如说你本来有一个2行3列的数组,你可以把它改成为3行2列的数组
注意:因为数组中元素是没有改变的,所以重塑数组指定的尺寸大小是否和原本的尺寸大小一样,大一点和小一点都会报错,2行3列的数组,你可以把它改成为3行2列的数组 ,或者1行6列,改后尺寸必须一样,reshape本质就是原本数组中的元素按顺序展开来,然后依次填入新定义的尺寸中去.注意 reshape后面填的是元组数据类型
import numpy as np
data1=[1,2,3,4,5]
data2=[1,2,3,4,5]
data=np.array([data1,data2])
print("改之前的数组形状为:")
print(data.shape)
data=data.reshape((5,2))
print("改之后的数组形状为:")
print(data.shape)
1.10数组转置
import numpy as np
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
data_array = np.array(data)
print("没有转置数组之前数组为:")
print(data)
print("转置数组之后数组为:")
print(data_array.T)
数组显示操作
2.1数组维度 ndim
ndim属性代表数组维度
data = np.array([1,2,3])
print(data.ndim)
2.2数组形状shape
shape属性代表数组形状,可以这么理解shape是各个方向的维度(ndim)
print(data.shape)
2.3数组中元素个数
print(data.size)
2.4 数组的数据类型 dtype
print(data.dtype)
数组的运算
这里简单讲两个例子
数组加法
import numpy as np
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
result = array1 + array2
print(result)
数组乘法
result=array1*array2
print(result)
数组中的数据统计
数据统计大家有个印象就行,不要刻意的去记,用到的时候回来看一眼就可以了,多用也就会了
计算数组的平均值
numpy.mean(arr, axis=None, dtype=None, out=None): 计算数组的平均值。参数axis表示沿着哪个轴进行计算,默认为None,表示计算整个数组的平均值;dtype表示返回结果的数据类型,默认为float64;out表示将结果存储在指定的数组中,一般情况下,传个数组进去就可以了,其他的用默认的就好了,其它的方法也是一样,我不赘述
import numpy as np
data=[1,5,6,9]
mindle=np.mean(data)
print(mindle)
计算数组的中位数
numpy.median(arr, axis=None, out=None): 计算数组的中位数。参数axis和out的含义与numpy.mean()相同
import numpy as np
data=[1,5,6,9]
data1=np.median(data)
print(data1)
计算数组的标准差
numpy.std(arr, axis=None, dtype=None, out=None): 计算数组的标准差。参数axis、dtype和out的含义与numpy.mean()相同。
计算数组的方差
numpy.var(arr, axis=None, dtype=None, out=None): 计算数组的方差。参数axis、dtype和out的含义与numpy.mean()相同。
计算数组的最小值
numpy.min(arr, axis=None, out=None): 计算数组的最小值。参数axis和out的含义与numpy.mean()相同。
计算数组的最大值
numpy.max(arr, axis=None, out=None): 计算数组的最大值。参数axis和out的含义与numpy.mean()相同
计算数组的元素之和
numpy.sum(arr, axis=None, dtype=None, out=None): 计算数组的元素之和。参数axis、dtype和out的含义与numpy.mean()相同。
计算数组的元素乘积
numpy.prod(arr, axis=None, dtype=None, out=None): 计算数组的元素乘积。参数axis、dtype和out的含义与numpy.mean()相同
计算数组的累积和
numpy.cumsum(arr, axis=None, dtype=None, out=None): 计算数组的累积和。参数axis、dtype和out的含义与numpy.mean()相同。
数组的索引和切片
切片怎么说呢,一维数组好讲,多维数组不太好讲,我们一起看看吧
一维数组切片
对于一维数组来说,它类似于一条直线,其上的坐标位置用一个数字就可以表示。例如,
对于一个长度为5的一维数组arr = [1, 2, 3, 4, 5],我们可以用数字0到4来表示
它的每一个位置。当我们使用切片操作时,就可以通过指定起始位置和结束位置来获取
数组中的一部分元素。例如,如果我们想要获取从索引1到索引3的元素,可以使用切片
操作arr[1:4],结果为[2, 3, 4]。需要注意的是,切片操作是左闭右开的,即包括
起始位置,但不包括结束位置
import numpy as np
arr = np.array([1,2,3,4,5])
print(arr[1:4])
import numpy as np
data1=[1,2,3,4,5]
data2=[6,7,8,9,10]
data3=[11,12,13,14,15]
data4=[16,17,18,19,20]
data5=[21,22,23,24,25]
data6=[26,27,28,29,30]
data=np.array([[data1,data2,data3],[data4,data5,data6]])
09-13
812