您的位置:首页 > 编程语言 > Python开发

Python科学计算学习一 NumPy 快速处理数据

2015-07-29 12:49 751 查看
1 创建数组

(1) array(boject, dtype=None, copy=True, order=None, subok=False, ndmin=0)

a = array([1, 2, 3, 4])

b = array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

a.dtype --> dtype('int32')

a.shape --> (4,)

b.shape -->(3, 4)

a.shape=2, -1 #(-1时自动计算,相当于2, 6)

c = a.reshape((2,2)) #c和a公用一个空间

(2) arange([start,] stop [,step], dtype=None)

a = arange(5) -->array([0, 1, 2, 3, 4])

a[2:4] -->array([2,3])

a[:-1] -->array([0, 1, 2, 3]) #下标为负数,表示从后往前数

a[2:4] = 20, 30 -->array([0, 1, 20, 30, 4]) #可以通过下标修改元素

x = arange(5, 0, -1) -->array([5, 4, 3, 2, 1])

x[array([True, False, True, False])]

-->array([5, 3]) #只获取布尔数组中True所在的下标 0 2 长度不够算False

x[array([True, False, False, True, False])) = -5, -2 #用布尔数组修改True所在下标的元素

x -->array([-5, 4, 3, -2, 1])

(3) linspace(start, stop, num=50, endpoint=True, retstep=False) #等差数列的一维数组

logspane(start, stop, num=50, endpoint=True, base=10) #等比数列的一维数组

(4) frombuffer

  fromfile

  fromstring(string, dtype=float, count=-1, sep=' ')

fromstring('abcdefgh', int8)

-->array([ 97, 98, 99, 100, 101, 102, 103, 104], dtype=int8) #一个字符占1个字节(Byte)=8位(bit),

fromstring('abcdefgh', in16)

-->array([25185, 25699, 26213, 26727], dtype=int16) #25185=98*256 + 97

(5) fromfunction(funtion, shape, **kwargs)

def func(i, j):

  return (i+1) * (j+1)

a = fromfunction(func, (9, 9)) --> 生成一个99乘法口诀二维数组 a[i, j] = func(i, j)

上面等价于 arange(1,10).reashape(-1,1) * arange(1,10)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: