Numpy 02

版权声明: https://blog.csdn.net/qq_40794602/article/details/84331014

Numpy存在一个轴(Axis)的概念:

  • 当只有一维时,0就代表这个一维的数组方向
  • 当有二维的时候,0代表x轴方向,1代表y轴方向
  • 当有三维的时候,0代表x轴方向,1代表y轴方向,2代表块方向
  • 以此类推,可以总结为一句话:设axis=i,则numpy沿着第i个下标变化的方向进行操作

为什么要有轴的概念呢?

numpy是个多维数组,多维数组运算需要指定到底对哪一维操作,因此axis就是用来指定需要操作的维数。 

numpy可以使用loadtxt方法读取文件里面的数据,可以是csv,txt等等

方法:np.loadtxt(frame,dtype,delimiter,skiprows,usecols,unpack)

参数 解释
frame 文件,字符串或产生器,可以是.gz或者bz2的压缩文件
dtype 依据类型,可选,CSV的字符串以什么类型写入数组中,默认np.float
dellimiter 分割字符串,默认是任何空格,可以改为逗号
skiprows 跳过前X行,一般跳过第一行表头
usecols 读取指定的列,索引,元组类型
unpack 如果True,读入属性将分别写入不同的数组变量,False读入数据只写入一组变量,默认False

 数组的倒置:

import numpy as np

t1 = np.arange(24).reshape(4, 6)
print(t1)
#将原数组倒置的三种方法
print(t1.transpose())
print(t1.T)
print(t1.swapaxes(1, 0))

数组的切片操作:

import numpy as np

t1 = np.arange(24).reshape(6, 4)

print(t1)
#取单行数据
print('第2行:', t1[1])
#取出连续多行
print("第二至第4行:\n", t1[1:5])
#取出离散的多行
print("第2,4,6行:\n", t1[[1, 3, 5]])

#取出连续的多列
print("第一列第二列:\n", t1[:, 0:2])
#取出离散的多列
print("第一列和第四列:\n", t1[:, [0, 3]])

#取出指定的列和行
print("第一行值第三行第一列值第三列:\n", t1[0:3, 0:3])

数组的条件索引:

import numpy as np

t1 = np.arange(24).reshape(6, 4)

print(t1)
#布尔索引
print(t1[t1>10])
print(t1>10)

#where
print(np.where(t1>10, 1, 0)) #numpy中的三目运算符,不改变原数组的数据

#clip裁剪操作
print(t1.clip(10, 18)) #将数组中小于10的重新赋值为10,将大于18的重新赋值为18,不改变原来数组的数据

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/84331014
02