import numpy as np
#range 输出1-10
t1=np.array(range(10))
#arange (,,步长)
t2=np.arange(4,10,2)
指定了范围之间的均匀间隔数量
x=np.linspace(10,20,5)
print(x) # >>> array([10. , 12.5, 15. , 17.5, 20. ])
dtype
的未初始化数组)a=np.empty([2,3],dtype=int,order="C")
shape 空数组的形状,整数或整数元组
dtype 所需的输出数组类型,可选
order "C"为按行的 C 风格数组,"F"为按列的 Fortran 风格数组
#其中,返回元素为随机值
b=np.zeros(5) #默认类型为float
c=np.zeros((5,),dtype=int)
d=np.zeros((3,2),dtype=int)
# numpy.asarray(a, dtype = None, order = None)
x = [1,2,3]
a = np.asarray(x)
print a # >>> [1 2 3]
count 需要读取的数据数量,默认为-1,读取所有数据
offset 需要读取的起始位置,默认为0
#numpy.frombuffer(buffer,dtype =float,count = -1,offset= 0)
s=b"Hello World" #data是字符串的时候,Python3默认str是 Unicode类型,所以要转成bytestring在原str前加上b
a = np.frombuffer(s, dtype = 'S1')
print a
# >>>array([b'H', b'e', b'l', b'l', b'o', b' ', b'W', b'o', b'r', b'l', b'd'],dtype='|S1')
t4=np.array(range(1,4),dtype="float") #指定数据类型
t5=t4.astype("int") #改变
t6=np.round(t5,2) #保留两位小数
#产生10个0-1的随机小数
np.random.random(10)
#产生k个m-n的随机整数
np.random.randint(m,n,k)
#从序列中选择数据
np.random.choice([2,5,7,8,9,11,3])
#把序列中的数据打乱(不会参数返回值,改变的话是在原列表中修改的)
np.random.shuffle(item)
a = np.array([[1,2,3],[4,5,6]])
print a.shape
# >>>(2,3)
a.shape(3,2)
print(a)
# >>> array([[1, 2],
# [3, 4],
# [5, 6]])
a.reshape(3,2) #输出同上
a.reshape(2,1,3) #三维数组
# >>> array([[[1, 2, 3]],
# [[4, 5, 6]]])
a.ndim() # >>> 3
通过将(start,stop,step)参数提供给内置的 slice函数 来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分
a=np.arange(10)
s=slice(2,7,3) #从索引2到7,步长为3
print(a[s]) # >>> [2 5]
将由冒号分隔的切片参数(start:stop:step)直接提供 ndarray对象,也可以获得相同的结果
b=a[2:7:3]
print(b) # >>> [2 5]
##########还有如下几类
c=a[8]
d=a[2:]
e=a[3:9]
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a[1:]) # >>> [[3 4 5]
# [4 5 6]]
###指定行列的单个元素
print(a[1][2]) # >>> 5
###返回第二列
print(a[...,1]) # >>> [2 4 5]
###返回第二行
print(a[1]) # >>> [3 4 5]
###第二列及剩余元素
print(a[...,1:]) # >>> [[2 3]
# [4 5]
# [5 6]]
c=a.T #转置
print(c[2])
e=a[m:n+1,p:q+1]
当结果对象是布尔运算(例如比较运算符)的结果时,将使用此类型的高级索引
#如print 大于4的元素
x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8]])
print(x[x>4]) #>>> [5 6 7 8]
np.max(a)
np.min(a)
np.sum(a)
np.mean(a)
#对某行某列求平均值
np.max(a,axis=1) #行
np.max(a,axis=0) #列
也可以通过axis参数来实现对每行每列的求和、求平均值
通过索引可以找出指定的某行某列的最小、最大值等…
np.median(a)
np.cumsum(a)
np.sort(a)
将a,b两个数组进行合并,可以上下合并,也可以左右合并
a=np.array([0,0,0])
b=np.array([4,4,4])
print(np.vstack((a,b))) #>>> [[0 0 0 ]
# [4 4 4]]
a=np.array([0,0])
b=np.array([4,4,4])
print(np.hstack((a,b))) #>>> [0 0 4 4 4]
vstack 纵向的合并 (列数要一样)
a=np.array([0,0,0])
b=np.array([4,4,4])
print(np.vstack((a,b))) #>>> [[0 0 0 ]
# [4 4 4]]
a=np.array([0,0])
b=np.array([4,4,4])
print(np.hstack((a,b))) #>>> [0 0 4 4 4]