- 基于Wes McKinney的Python for Data Analysis第四章NumPy Basics: Arrays and Vectorized Computation整理代码得来。
最近在自学Python,感觉还是要敲一下的,又懒得在书上做笔记,所以在Notebook上写写喽。 - 有需要的尽管参考~谢谢
import numpy as np
#通过np.array()用list创建一维数组
#list是用[]括起来的,元素之间用逗号
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
print arr1
type(data1)
[ 6. 7.5 8. 0. 1. ]
list
#通过np.array()用list创建二维数组
#list是用[]括起来的,每行是一个[],不同行之间用逗号
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print arr2
[[1 2 3 4]
[5 6 7 8]]
#查看数组的位数和形状以及数据类型
print arr2.shape
print arr2.ndim
print arr1.dtype
print arr2.dtype
(2, 4)
2
float64
int64
#可以通过制定dtype来强制显性规定数组内元素的数据类型
#可以用过np.asdtype来转换ndarray里面的元素的数据类型,如果非数字类型的list强制转化会报错
"""
通过numpy的函数来新建数组
"""
print '全是0的五位数组:',np.zeros(5)
print '全是1的五维数组:',np.ones(5)
print '全是0的3*3数组:',np.zeros((3,3))
print '全是1的3*3数组:',np.ones((3,3))
print '全是1的3*3*3数组:',np.ones((2,2,2))
print np.empty((3,3))
print np.ones_like(arr2)#生成一个维度如同括号内数组的全是0的数组,传入的参数为ndarry格式
print np.zeros_like(arr2)
print np.eye(3)#产生单位矩阵,输入参数为阶数
print np.arange(10)
print np.arange(1,10,2)#np.arange(开始,结束,步长),其中开始可以省略(默认为0)步长可以省略(默认为1)
#如果想产生从大到小的数组可以通过如下的方式产生
print np.arange(10,0,-1)
全是0的五位数组: [ 0. 0. 0. 0. 0.]
全是1的五维数组: [ 1. 1. 1. 1. 1.]
全是0的3*3数组: [[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
全是1的3*3数组: [[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
全是1的3*3*3数组: [[[ 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]]
[[0 0 0 0]
[0 0 0 0]]
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0