Numpy的基本操作

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

  • in:测试数值是否在数组中
Data = np.array([(1,2,3),(4,5,6),(7,8,9)])
print(2 in Data)    #打印出数组的维数(秩)
print(2 in Data)
—— True
—— False
  • reshape:数组的重排列
    例:一维数组变为二维数组
Data = np.array((1,2,3,4,5,6))
print(Data)    #打印出
—— [1 2 3 4 5 6]
print(Data.reshape((2,3)))
——   [[1 2 3]
      [4 5 6]]
  • Insert:插入元素

参数——arr:数组
obj:删除某一轴的对应标号
axis:axis = 0 删除行,axis = 1 删除列

Data = np.array([(1,2,3),(4,5,6),(7,8,9)])
Data = np.insert(Data,0,1,axis=0)
print(Data)
—— [[1 1 1]
    [1 2 3]
    [4 5 6]
    [7 8 9 ]]
Data = np.insert(Data,2,5,axis=1)
print(Data)
—— [[1 1 1]
    [1 2 3]]
    [4 5 6]]
    [7 8 9 ]]
  • delete:删除元素

参数——arr:数组
obj:删除某一轴的对应标号
axis:axis = 0 删除行,axis = 1 删除列

Data = np.array([(1,2,3),(4,5,6),(7,8,9)])
Data = np.delete(Data,0,axis=0)    #删除第一行
print(Data)
——[[ 4 5 6]]
   [7 8 9 ]]
Data = np.delete(Data,0,axis=1)
print(Data)
——  [[5 6]
     [8 9 ]]
  • copy:创建一个新的,内存分离的拷贝
Data = np.array((1,2,3))
val = Data    
print(val is Data)
—— True
val = Data.copy()
print(val is Data)
—— False

赋值与copy的区别在于一个是浅拷贝,一个是深拷贝
使用上的区别:
①赋值操作:val与data指向同一个空间,data变,val变;
②copy操作:val与data指向不同的空间,data变,val不变。

Data = np.array((1,2,3))
val = Data
Data[0] = 5    
print(val)
—— [5 2 3]
Data = np.array((1,2,3))
val = Data.copy()
Data[0] = 5    
print(val)
—— [1 2 3]
  • transpose:转置(可以直接.T)
Data = np.array(((1,2,3),(4,5,6),(7,8,9)))   
print(Data.transpose())
——[[ 1 4 7]]
   [2 5 8 ]]
   [3 6 9 ]]   
print(Data.T)
——[[ 1 4 7]]
   [2 5 8 ]]
   [3 6 9 ]]
  • fill:用一个值填充数组
Data = np.array((1,2,3))
Data.fill(0)    
print(Data)
—— [0 0 0]

但,fill()函数不能嵌套在print()函数中作为表达式:

Data = np.array((1,2,3))    
print(Data.fill(0))
—— None
  • flatten:把多维数组转为一位数组
Data = np.array(((1,2,3),(4,5,6),(7,8,9)))   
print(Data.flatten())
——[1 2 3 4 5 6 7 8 9]
  • concatenate:把多个数组串联起来
a = np.array([1,2,3])
b = np.array([4,5])
c = np.array([7,8,9,10])
np.concatenate(a,b,c)
—— 
a = np.array([(1,2,3),(4,5,6)])
b = np.array([(99,88),(77,66)])
np.concatenate((a,b),axis=1)
——

注:多维数组连接的过程中要注意连接轴的大小相同,不然会报错

a = np.array([(1,2,3),(4,5,6)])
b = np.array([(99,88),(77,66)])
np.concatenate((a,b),axis=0)
——
  • newaxis:增加维度
Data = np.array([1,2,3])   
print(Data.shape)
—— (3,)
Data = Data[:,np.newaxis]
print(Data.shape)
——(3, 1)
  • tile:重复某个数组(类似于Matlab中的remat)
Data = np.array([[1,2],[3,4]])   
print(np.tile(Data,2))
——[[ 1 2 1 2]]
   [3 4 3 4 ]]
  • vstack, hstack:数组按列堆叠,按行堆叠
a = np.array([(2,3),(1,4)])
b = np.array([(4,9),(6,2)])
print(np.vstack((a,b)))
print(np.hstack((a,b)))
——[[ 2 3]
   [1 4]
   [4 9]
   [6 2]]
——[[ 2 3 4 9]
   [1 4 6 2]]

https://www.jianshu.com/p/85b09a7cb3cb

Python量化投资网携手4326手游为资深游戏玩家推荐:《三国杀下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论