python-numpy的基本用法01

来源:互联网 发布:网站源码打包下载 编辑:程序博客网 时间:2024/05/22 11:30

python-numpy的基本用法01

  • NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运
    算,此外也针对数组运算提供大量的数学函数库
  • 官网链接:http://www.numpy.org/
  • 下载安装
    linux下直接pip install 即可
    windows下https://sourceforge.net/projects/numpy/files/NumPy/1.8.1/

基本用法

1、创建数组

coding:utf-8

import numpy as np#1维数组创建data = [1, 2, 3, 4, 5]arr = np.array(data)print('元素类型' + str(arr.dtype))print arrprint '*' * 50#2维数组的创建data = [[1,2,3,4], [5,6,7,8]]arr = np.array(data);print('元素的维度' + str(arr.shape))print arrprint '*' * 50print np.zeros((5,6))print '*' * 50print np.empty((3,4)) #生成2*3*2的三维数组,所有元素未初始化。print '*' * 50print np.arange(15)
  • 输出:1

    元素类型int32[1 2 3 4 5]**************************************************元素的维度(2, 4)[[1 2 3 4] [5 6 7 8]]**************************************************[[ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.]]**************************************************[[  3.56812815e-295   2.10814249e-294   2.14383646e-294   2.14491158e-294] [  2.14605837e-294   2.40157849e-294   4.00245561e-294   4.26941978e-294] [  4.27200006e-294   4.27357691e-294   4.40512377e-294   4.47593777e-091]]**************************************************[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

2、数组的索引和切片

#coding:utf-8import numpy as npfrom creatingNpArrays import arr#数组的索引arr = np.array([[1,2,3], [4,5,6], [7,8,9]])print arrprint arr[1] # [4,5,6]print arr[[0],[0]] # [1]print arr[0][0] # 1print arr[0][0] + arr[0, 0] # 1+1print '*' * 50arr = np.array([[[1,2,3],[4,5,6],[7,8,9]]])print arr#三维数组print arr[0] #二维数组print arr[0, 0]oldArr = arr[0].copy()arr[0] = 55print arrprint '*' * 50# 数组的切分arr = np.array([1,2,3,4,5])print arr[0:2]arr = np.array([[1,2,3], [4,5,7], [6,7,8]])print arrprint arr[:, :2] #[)arr[0, :] = 0print arrprint '*' * 50# boolean索引arrBool = np.array([True, False, False, True, False])arr  = np.array([1,2,3,4,5])print arr[arrBool]arr = np.random.randn(6,5)print arrprint arr[:2, arrBool]arr[:2, arrBool] = 8;print arrprint '*' * 50# 花式索引arr = np.empty((8, 4))for i in range(8):    for j in range(4):        arr[[i], [j]] = (j)+i*4print arrprint arr[[0,1,2]] #打印相应的行 二维数组 相当于arr[:3, :]print arr[[0,1,2],[0,1,2]] # [  0.   5.  10.]print arr[[0,1,2]][:, [0,1,2]] # [[  0.   1.   2.]#  [  4.   5.   6.]#  [  8.   9.  10.]]
  • 输出:

    元素类型int32[1 2 3 4 5]**************************************************元素的维度(2, 4)[[1 2 3 4] [5 6 7 8]]**************************************************[[ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.  0.]]**************************************************[[  2.25678077e-295   1.30483694e-294   1.32268392e-294   1.32322148e-294] [  1.32379488e-294   1.45155494e-294   2.45994554e-294   3.68226108e-294] [  3.68484136e-294   3.68641821e-294   3.81796507e-294   4.47593777e-091]]**************************************************[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14][[1 2 3] [4 5 6] [7 8 9]][4 5 6][1]12**************************************************[[[1 2 3]  [4 5 6]  [7 8 9]]][[1 2 3] [4 5 6] [7 8 9]][1 2 3][[[55 55 55]  [55 55 55]  [55 55 55]]]**************************************************[1 2][[1 2 3] [4 5 7] [6 7 8]][[1 2] [4 5] [6 7]][[0 0 0] [4 5 7] [6 7 8]]**************************************************[1 4][[ 1.59025666  0.60323342 -0.31831454 -0.46765416  0.19817061] [-1.54605694 -0.39970578 -1.43594165 -0.22848042  0.17555307] [-0.39047187 -1.50432276  0.88895238  0.44017938  0.85532183] [ 0.97128454  1.22729238 -2.62130004 -0.68342569 -0.83079104] [-1.58279788  0.32233654 -1.55457258 -1.10925867  0.72559114] [ 1.07697202  0.71196755 -0.37600462 -2.00553329 -1.82509433]][[ 1.59025666 -0.46765416] [-1.54605694 -0.22848042]][[ 8.          0.60323342 -0.31831454  8.          0.19817061] [ 8.         -0.39970578 -1.43594165  8.          0.17555307] [-0.39047187 -1.50432276  0.88895238  0.44017938  0.85532183] [ 0.97128454  1.22729238 -2.62130004 -0.68342569 -0.83079104] [-1.58279788  0.32233654 -1.55457258 -1.10925867  0.72559114] [ 1.07697202  0.71196755 -0.37600462 -2.00553329 -1.82509433]]**************************************************[[  0.   1.   2.   3.] [  4.   5.   6.   7.] [  8.   9.  10.  11.] [ 12.  13.  14.  15.] [ 16.  17.  18.  19.] [ 20.  21.  22.  23.] [ 24.  25.  26.  27.] [ 28.  29.  30.  31.]][[  0.   1.   2.   3.] [  4.   5.   6.   7.] [  8.   9.  10.  11.]][[  0.   1.   2.   3.] [  4.   5.   6.   7.] [  8.   9.  10.  11.]][  0.   5.  10.][[  0.   1.   2.] [  4.   5.   6.] [  8.   9.  10.]]