# coding=utf-8
import numpy as np
import random
# nan是一个float类型 ,not a num不是一个数字;inf,infinite 无穷 # 轴的概念---(3,2) 3为0轴,2为1轴; (3,2,1)3为0轴,2为1轴,1为2轴

#一、读取CSV数据----csv文件内容以逗号进行分割 #t = np.loadtxt("path",delimiter=",",dtype="int")
''' fname文件 dtype数据类型 delimiter分割符 skiprows跳过前几行 usecols读取指定的列 unpack 矩阵转置---默认为False,不进行转置 '''

#二、转置 --->建议使用transpose()或者T
t2 = t8.transpose() t3 = t8.T t4 = t8.swapaxes(1,0) #三、索引与切片----取行和列
t8 = np.random.randint(3,12,(4,8)) #取行
print(t8[1,:]) #取多行
print(t8[1:,:]) #取不连续的多行
print(t8[[0,1],:]) #取列
print(t8[:,1]) #取连续的多列
print(t8[:,1:]) #取不连续的多列
print(t8[:,[1,3]]) #取行和列,取第三行四列
print(t8[2,3]) #取多行多列,取3-5行,2-4列----取交叉点的数据
print(t8[2:5,1:4]) #取多个不相邻的点
print(t8[[0,2],[0,1]])  #即(0,0),(2,1)两个点

''' 四、裁剪 '''
#裁剪----返回的数据为一维数组
print("*"*20) print(t8[t8<10]) print("*"*20) #布尔判断--->转为boolean类型,大于5为True,小于5为False,返回的数据为一维数组
print(t8>5) #元素替换---三元运算符,小于10为0,大于10的为10 ,返回一维数组
print(np.where(t>10,0,10)) #clip裁剪 ----clip(10,18)将小于10的替换为10,大于18的替换为18 返回的数据为一维数组
t8 = t8.clip(10,18) print(t8) ''' 五、数组拼接与交换 ''' t1 = np.array([1,2,3]) t2 = np.array([4,5,6]) t51 = np.vstack((t1,t2))   #竖直拼接
t61 = np.hstack((t1,t2))   #水平拼接 #np.vsplit() #竖直分割 #np.hsplit() #水平分割

#行交换
t8[[1,2],:] = t8[[2,1],:] #列交换
t8[:,[1,2]] = t8[:,[2,1]]

#其他属性

    a = np.array([[11, 12, 13, 14, 15],
            [16, 17, 18, 19, 20],
            [21, 22, 23, 24, 25],
            [26, 27, 28 ,29, 30],
            [31, 32, 33, 34, 35]])

      print(type(a)) # >>><class 'numpy.ndarray'>
      print(a.dtype) # >>>int64
      print(a.size) # >>>25
      print(a.shape) # >>>(5, 5)
      print(a.itemsize) # >>>8
      print(a.ndim) # >>>2
      print(a.nbytes) # >>>200

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄