我爱编程

numpy的使用小结

2018-03-27  本文已影响0人  jshan

数组创建

numpy.empty(shape, dtype=float, order='C')
numpy.zeros(shape, dtype=float, order='C')
numpy.ones(shape, dtype=float, order='C')

根据列表或者元组参数 a 创建数组

numpy.asarray(a, dtype=None, order=None)

根据缓冲区的对象作为参数 buffer 作为 ndarray

"""
dtype 默认为 float,表示数据类型
count 默认值为 -1,表示读取所有数据
offset 默认为 0,表示从第一位读取
"""
numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

根据可迭代对象 iterable 返回一个新的一维数组

numpy.fromiter(iterable, dtype=float, count=-1)

根据数值范围来创建数组

"""
start 默认为 0,表示范围的起始值
stop 范围的终止值(开区间,不包括该数)
step 默认为 1,表示两个值的间隔
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型
"""
numpy.arange(start, stop, step, dtype)

指定范围内的均匀间隔数量,而不是步长,来创建数组

"""
start 序列的起始值
stop 序列的终止值,如果 endpoint 为 true,该值包含于序列中
num 默认为 50,要生成的等间隔样例数量
endpoint 默认为 true,表示是否包含 stop 值
retstep 默认为 false, 表示是否返回连续数字之间的步长
dtype 返回ndarray的数据类型
"""
numpy.linspace(start, stop, num, endpoint, retstep, dtype)

包含在对数刻度上均匀分布的数字,刻度的开始和结束端点是某个底数的幂,通常为10

"""
类似于 numpy.linspace 函数,只是这里是对数刻度上的均匀分布而已,多了一个参数 base,默认为 10;并且没有 retstep 参数
"""
numpy.logspace(start, stop, num, endpoint, base, dtype)

索引方法:字段访问、基本切片和高级索引

基本切片

"""

  1. 通过将 start stop 和 step 参数提供给内置的 slice 函数来构造一个 python slice 对象
    a = np.arange(10)
    s = slice(2, 7, 1) # [2, 3, 4, 5, 6]
    a[s]
    等效于
    a[2:7:1] 或者 a[2:7]
  2. 使用包括省略号 ... 来使选择元组的长度与数组的维度相同,如果在行位置使用省略号,它将返回包含行中元素的 ndarray
    """

高级索引

"""
如果一个 ndarray 是非元组序列,数据类型为整数或布尔值的ndarray,或者至少一个元素为序列对象的元组,
我们就能够用它来索引ndarray。
高级索引始终返回数据的副本,与此相反,切片只提供一个视图。
"""

使用布尔值

x = numpy.arange(12).reshape(4,3)
print x[x > 5] # 获取大于5的元素

使用 ~ 取补运算符 来过滤 NaN

x = numpy.array([numpy.nan, 1, 2, numpy.nan, 3, 4, 5])
print x[~numpy.isnan(x)]

使用 iscomplex 过滤

x = numpy.array([1, 2+6j, 5, 3.5+5j])
print x[numpy.iscomplex(x)]

广播 broadcast

"""
当操作两个array时,numpy会逐个比较它们的shape(构成元组tuple),只有在下述情况下,两arrays才算兼容

注意:

上一篇下一篇

猜你喜欢

热点阅读