import numpy as np
# arange 在给定的间隔内返回等距值# reshape 返回一个包含具有新形状的相同数据的数组
a = np.arange(15).reshape(3,5)print(a)
arange
import numpy as np
# arange 在给定的间隔内返回等距值print(np.arange(10,30,5))
reshape
import numpy as np
# reshape 返回一个包含具有新形状的相同数据的数组
a = np.arange(15).reshape(3,5)print(a)
数组常用属性
import numpy as np
a = np.arange(15).reshape(3,5)# 数组维数print(a.ndim)# 数组中元素的类型名称print(a.dtype.name)# 数组中总的元素数量print(a.size)
数组初始化
import numpy as np
from numpy import pi
# 初始化一个数组,zeros的参数是元组print(np.zeros((3,4)))print("---------")# 初始化数组为1,并指定元素类型print(np.ones((2,3,4), dtype=np.float))print("---------")# 返回一个指定空间的随机的(0到1)数组print(np.random.random((2,3)))print("---------")# 在0和2*pi之间平均切分出15个元素print(np.linspace(0,2* pi,15))
数组间算术运算
import numpy as np
a = np.array([20,30,40,50])
b = np.arange(4)# 数组之间空间大小相同可以进行算术运算print(a - b)print("----")print(a * b)print("----")# 每个元素都进行乘法操作print(b *2)print("----")# 每个元素都进行指数操作print(b **3)print("----")# 两个数组的点积 = np.sum(a * b)print(a.dot(b))print(np.sum(a * b))print(np.dot(a, b))print("----")
exp
import numpy as np
b = np.arange(5)# 计算输入数组中所有元素的指数 e ** 元素的值print(np.exp(b))
sqrt
import numpy as np
b = np.arange(5)# 返回数组的非负平方根,按元素计算。print(np.sqrt(b))
floor
import numpy as np
# 向下取整
a = np.floor(10* np.random.random((3,4)))print(a)print(a.shape)print("-----")
ravel
import numpy as np
# 向下取整
a = np.floor(10* np.random.random((3,4)))# 返回一个平坦矩阵print(a.ravel())print(a.ravel().shape)
resize/shape
import numpy as np
# 向下取整
a = np.floor(10* np.random.random((3,4)))# 改变a的结构
a.shape =(6,2)print(a)print("-----")# 改变阵列的形状和大小
a.resize((2,6))print(a)print("-----")# a的转置矩阵print(a.T)
hstack
import numpy as np
a = np.floor(10* np.random.random((3,3,5)))
b = np.floor(10* np.random.random((3,3,5)))
c = np.floor(10* np.random.random((3,5)))
d = np.floor(10* np.random.random((3,5)))print("a=", a,"\n")print("b=", b,"\n")# 水平(按列排列)排列。它相当于沿着第二轴的连接# 这个函数对于3维的数组最有意义。# 例如,对于具有高度(第一轴)、宽度(第二轴)和r/g/b通道(第三轴)的像素数据。# 函数“concatenate”、“stack”和“block”提供了更一般的堆叠和连接操作。print("ab=", np.hstack((a, b)))print("cd=", np.hstack((c, d)))
hsplit
import numpy as np
a = np.floor(10* np.random.random((2,12)))print("a=", a)print("------")# 水平地将一个数组拆分为多个子数组(按列排列)。# 请参考“split”文档。 'hsplit '相当于 np.split(axis=1),# 数组总是沿着第二个轴分裂,而不管数组的大小。print(np.hsplit(a,3))print("----")# hsplit第二个参数是个元组的时候,表示split的索引列# 下面这个就是在 列索引号为 3,5,8的地方进行拆分print(np.hsplit(a,(3,5,8)))print("----")
a = np.floor(10* np.random.random((2,2,4)))print("a=", a)# hsplit的第二个参数,如果不是元组或者是一个参数的元组# 此参数必须可以让数组的第1轴的维数整除print(np.hsplit(a,2))
=
import numpy as np
a = np.arange(12)# 使用等号赋值,不同引用操作的地址相同
b = a
print(b)print(b is a)
b.shape =(3,4)print(a.shape)print(id(a),id(b))
view
import numpy as np
a = np.arange(12)# view视图方法创建一个新的数组对象,该对象具有相同的数据
c = a.view()print(c)print(c is a)print(a)# a/b的地址不一样print(id(a),id(c))# 但是修改其中一个值之后,另一个也同步修改
c[3]=333print("a=", a)
a[6]=666print("c=", c)
c.shape =(3,4)
c[0]=0print(a)
copy
import numpy as np
a = np.arange(12)# copy返回数组的副本
d = a.copy()print(d)print(d is a)
d.shape =(3,4)print(id(a),id(d))
d[1]=111
a[0]=1000# 修改任一值均不会影响另一个print("a=", a)print("d=", d)
argmax
import numpy as np
data = np.sin(np.arange(20)).reshape(5,4)print(data)print(data.shape)# (5, 4)# 沿给定轴(第0轴)的最大值的返回索引,将返回shape=(4,)的数组
ind = data.argmax(axis=0)print(ind, ind.shape)# 沿给定轴(第1轴)的最大值的返回索引,将返回shape=(5,)的数组
ind = data.argmax(axis=1)print(ind, ind.shape)
tile
import numpy as np
a = np.arange(0,40,10)print(a,"\n")# 通过重复代表给出的次数来构造数组。
b = np.tile(a,(1,4))print(b)
argsort
import numpy as np
a = np.array([4,3,1,2])# 返回对数组进行排序的索引。# 最小的1索引为2,最大的4索引为0
b = np.argsort(a)# [2 3 1 0]print(b)# 排序后的数组print(a[b])