#导入模块,重命名为np import numpy as np #一维数组 a = np.arange(1,13) #生成[0,1,2,3,...,12]数组 print(a[3]) #结果为4 print(a[:6:2]) #索引0-5以2为间隔输出 print(a[::-1]) #逆序输出 #二维数组 b = a.reshape(3,4) #转化为三行四列的二维数组 print(b[2]) #[9,10,11,12],也就是第三行(0是第一行) print(b[1][1]) #结果为5,等价于b[1,1] print(b[1,1:3]) #输出第二行第二、三列元素 for row in b : print(row) #逐行打印 for col in b.T: print(col) #逐列打印 print(b.flatten()) #多维转化为一维,等价于b.ravel(),但是不会更改原始数组 b.resize((2,6)) #将三行四列转换为两行六列并且会永久修改原始数组,如果第二个参数为-1,则resize会自动判断需要的列数 for item in a.flat: print(item) #仅仅以一列的形式展示所有的数组元素
对fromfunction()函数的分析:通过例子来了解
#首先定义函数 def f(x,y): return 10*x+y #调用fromfunction(func,shape,*arg)函数 b = np.fromfunction(f,(5,4),dtype=int) print(b) ''' array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) 解释:因为shape是(5,4),所以结果数组是五行四列,x依次取0、1、2、3、4,y依次取0、1、2、3,数组类型是int 1.x=0,y依次取0、1、2、3作为第一行 2.x=1,y依次取0、1、2、3作为第二行 3.x=2,y依次取0、1、2、3作为第三行 4.x=3,y依次取0、1、2、3作为第四行 5.x=4,y依次取0、1、2、3作为第五行 ''' b[2,3] print(b) #输出第三行第四列为23 b[0:5, 1] #输出第0-4行的第二列 >>>array([ 1, 11, 21, 31, 41]) b[ : ,1] # 输出所有行的第二列 >>>array([ 1, 11, 21, 31, 41]) b[1:3, : ] # 输出第1-2行的所有列 >>>array([[10, 11, 12, 13], [20, 21, 22, 23]]) b[-1] #等价于b[-1,:]和b[-1,...]输出最后一行的所有列 >>>array([40, 41, 42, 43])
其他属性:
Indexing, Indexing (reference), newaxis
, ndenumerate
, indices