数据分析之路 第一篇 numpy

第一篇 numpy

1.N维数组对象 :ndarray
在Python中既然有了列表类型,为啥还要整个数组对象(类型)?那是因为:
1.数组对象可以除去元素间运算所需要的循环,使得一维向量更像单个数据
2.设置数组对象可以提升计算的速度
3.数组对象采取相同的数据类型,有助于节省运算空间和存储空间
nsarray 是一个多维数组对象,由两部分组成:
1.实际的数据
2.描述这些数据的原数据(数据维度、数据类型等)

import numpy as np

a = np.array([[0,1,2,3,4],
             [9,8,7,6,5]])

print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)
print(a.itemsize)

#2
#(2, 5)
#10
#int32
#4

     

#创建数组

import numpy as np

x = np.array([0,1,2,3])
x1 = np.array((0,1,2,3))
x2 = np.array([[1,2],[3,4],[0.4,0.5]])

print(x)
print(x1)
print(x2)

注释:
[0 1 2 3]
[0 1 2 3]
[[ 1.   2. ]
 [ 3.   4. ]
 [ 0.4  0.5]]
    

                   

ndarray 数组的变换

 

import numpy as np

a = np.ones((2,3,4),dtype=np.int32)
print(a)
b = a.reshape(3,8)
print(b)
#ndarray 数组向列表转化
print(a.tolist())

注意:
[[[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]

 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]]
[[1 1 1 1 1 1 1 1]
 [1 1 1 1 1 1 1 1]
 [1 1 1 1 1 1 1 1]]
[[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]]

 ndarray数组的切片和索引

#数组的索引和切片

a = np.arange(24).reshape((2,3,4))
print(a)

[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]


[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]

print(a[1,2,3]) #23
print(a[-1,-2,-3]) #17

print(a[:,1,-3]) #[ 5 17]

print(a[:,1:3,:])

print(a[:,:,::2])

输出结果:
[[[ 4  5  6  7]
  [ 8  9 10 11]]

 [[16 17 18 19]
  [20 21 22 23]]]


[[[ 0  2]
  [ 4  6]
  [ 8 10]]

 [[12 14]
  [16 18]
  [20 22]]]

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-04-28 21:37  还是牛  阅读(236)  评论(0编辑  收藏  举报