numpy 数组常用处理

新建数组

a=[]
for i in xxx:
a.append(i[0:13])

多维数组 b = np.array([(1.5,2,3), (4,5,6)])
指定类型 c = np.array( [ [1,2], [3,4] ], dtype=complex )
生成数组并赋值为特殊值 ones:全1 zeros:全0 empty:随机数,取决于内存情况,如果是二维的,即写成np.zeros( (3,4) ,dtype=np.int16 ) 还可以指定数据类型。

生成均匀分布的array:
arange(最小值,最大值,步长)(左闭右开)
linspace(最小值,最大值,元素数量)
指数分布 logspace

对数组中每个元素进行处理,比如 a=arange(5) 2 可以写为
a = [1,2,3,4,5]
b = list(map(lambda x:x
2,a))

数组的交/并集

list 可以直接相加
水平组合 np.hstack((a,b ))
垂直组合 np.vstack((a,b)) np.concatenate((a,b),axis=0)
沿着纵轴方向组合 np.dstack((a,b)) 参考链接
数组拼接 np.append(x,y)
合并 np.concatenate((a,b), axis = None)

image.png

维度转换

reshape 是把一个已经存在了的ndarray 转换为另一个shape, 即包含了原来所有的数组 ndarray = np.arange(0,12).reshape((3,4))
(注意:新的形状必须保持size相同)

条件筛选

np.where( (arr == 3) | (arr == 1) )
a=np.where((x>5)&(x<10))
print(x[a])
idx=np.where(ne>100)
idx=np.array(idx).reshape(np.size(idx))
print(time[idx])

根据时间挑选最接近某个时刻的下标:
import pyspedas
arr=np.abs(MS_Bw_time-pyspedas.time_double(tt2))
idx12 = np.where(arr == np.amin(arr))

where筛选出来的index是tuple类型,把它转化到array类型:
idx=[]
for item in index:
idx.extend(item)

def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return array[idx]
def find_nearest2(array,values):
indices = np.abs(np.subtract.outer(array, values)).argmin(0)
return indices

NAN value的处理

把nan 项去除 或 设为0
event_l_shell = event_l_shell[~np.isnan(event_l_shell)]
event_l_shell[np.isnan(event_l_shell)]=0

把NAN 去掉 .dropna()
把NAN替换成某个值 A[np.isnan(A)] = 0 或者.fillna(0)

bad_indices = np.isnan(x) | np.isnan(y)
good_indices = ~bad_indices
good_x = x[good_indices]
good_y = y[good_indices]

生成全是nan 的数组: np.full([3,2], np.nan)

空数组的判断 any(array) == True/False

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 核心数据结构 ndarray 多维数组, 注意 n维的顺序 ndarray的属性 ndarray.ndim数组的...
    咚咚强阅读 3,325评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,944评论 0 5
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,143评论 0 13
  • import numpy as np 创建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陆文斌阅读 4,035评论 0 1
  • $$\mathrm{《Python科学计算》学习笔记}$$ [TOC] Numpy 数组入门 数组创建 np.ar...
    篁竹水声阅读 4,059评论 0 0