numpy基础

import numpy as np#导入numpy库并配置一个别名np
#传统的python语法
def pysum():
    a=[0,1,2,3,4]
    b=[9,8,7,6,5]
    c=[]
    for i in range(len(a)):
        c.append(a[i]**2+b[i]**2)
    return c
print(pysum())

结果:
[81, 65, 53, 45, 41]
#运用numpy的思想 对数组的运算是对数组中的每一个元素的运算
def npsum():
    a=np.array([0,1,2,3,4])
    b=np.array([9,8,7,6,5])
    c=a**2+b**2
    return c
print(pysum())
结果:
[81, 65, 53, 45, 41]
numpy中ndarray数组的属性
变量.ndim 数组的行数
变量.shape 数组的维度和形状,即行数和列数构成的元组
变量.size 数组中元素的总个数
变量.dtype 数组中元素的数据类型
变量.itemsize 元素的字节大小
   
#np.array()函数创建数组对象
a=[4,56,567,4]
b=[23,54,6,78]
n=np.array([a,b])
print(n)
[[  4  56 567   4]
 [ 23  54   6  78]]
#np.arange()函数创建数组  只能创建一维数组

ui=np.array([np.arange(9),np.arange(9,18)])
print(ui)
结果:
[[ 0  1  2  3  4  5  6  7  8]
 [ 9 10 11 12 13 14 15 16 17]]
#np.ones()  np.zeros() np.full(shape,val) np.eye()
u2=np.ones((2,3,4))
print(u2)
print('------分割线------')
u3=np.zeros((3,3,3))
print(u3)
结果:
[[[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. 0.]]

 [[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]

 [[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]]
u4=np.full((3,4),26)
print(u4)
print('------分割线------')
u5=np.eye(4)
print(u5)
print('------分割线------')
u6=np.concatenate([u4,u5])#将两个或者多个数组合并为一个新的数组
print(u6)
结果:
[[26 26 26 26]
 [26 26 26 26]
 [26 26 26 26]]
------分割线------
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
------分割线------
[[26. 26. 26. 26.]
 [26. 26. 26. 26.]
 [26. 26. 26. 26.]
 [ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]]
#ndarray数组的维度变换
u8=u6.reshape((2,14))
print(u8)
print('------分割线------')
print(u6)
print('------分割线------')
u9=u8.flatten()#对数组进行降维返回一维数组(不改变原数组)
print(u9)
print('------分割线------')
print(u8)
[[26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26.  1.  0.]
 [ 0.  0.  0.  1.  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.]]
------分割线------
[[26. 26. 26. 26.]
 [26. 26. 26. 26.]
 [26. 26. 26. 26.]
 [ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]]
------分割线------
[26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26.  1.  0.  0.  0.  0.  1.
  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.]
------分割线------
[[26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26.  1.  0.]
 [ 0.  0.  0.  1.  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.]]
 
#数组的拷贝和转换 new_a=a1.astype()   new_2=a.tolist()
a1=np.array([np.arange(9),np.arange(51,60)])
print(a1)
a2=a1.tolist()
print(type(a2))
print(a2)
[[ 0  1  2  3  4  5  6  7  8]
 [51 52 53 54 55 56 57 58 59]]

[[0, 1, 2, 3, 4, 5, 6, 7, 8], [51, 52, 53, 54, 55, 56, 57, 58, 59]]
#numpy数组的属性 n.ndim n.shape n.size n.dtype n.itemsize
print(n.ndim)
print(n.shape)
print(n.size)
print(n.dtype)
2
(2, 4)
8
int32
#数组的操作 即 ;索引和切片
#一维数组的索引与切片
a3=np.array([9,8,7,6,5])
print(a3[2])#索引
print(a3[1:4:2])#切片
print((a3[1:4:2]).tolist())
7
[8 6]
[8, 6]
#多维数组的索引与切片
a4=np.arange(24).reshape((2,3,4))
print(a4)
print('------分割线------')
print(a4[0,1,2])#索引
print(a4[1,2,3])
print(a4[1,1,1])
print('------分割线------')
print(a4[0,1,:3])#切片
print(a4[:,1,1:3])
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
------分割线------
6
23
17
------分割线------
[4 5 6]
[[ 5  6]
 [17 18]]
#数组的运算  一元函数
n=np.arange(24).reshape((2,3,4))
print(n)
print('------分割线------')
print(n*2)
print('------分割线------')
print(np.square(n))#计算数组各元素的平方值
print('------分割线------')
print(np.mean(n))#计算数组各元素的平均值
print('------分割线------')
print(np.abs(n))
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
------分割线------
[[[ 0  2  4  6]
  [ 8 10 12 14]
  [16 18 20 22]]

 [[24 26 28 30]
  [32 34 36 38]
  [40 42 44 46]]]
------分割线------
[[[  0   1   4   9]
  [ 16  25  36  49]
  [ 64  81 100 121]]

 [[144 169 196 225]
  [256 289 324 361]
  [400 441 484 529]]]
------分割线------
11.5
------分割线------
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
#数组的运算二元函数
ji=np.arange(12).reshape(2,2,3)
ji2=np.sqrt(ji)
print(ji)
print(ji2)
print('------分割线------')
print(ji
[[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]]
[[[0.         1.         1.41421356]
  [1.73205081 2.         2.23606798]]

 [[2.44948974 2.64575131 2.82842712]
  [3.         3.16227766 3.31662479]]]
------分割线------
[[[False False False]
  [False False False]]

 [[False False False]
  [False False False]]]
#csv文件的存储
a9=np.arange(24).reshape(4,6)
np.savetxt("C:\\Users\86666\Desktop\python文件处理\9.csv",a9,fmt='%d',delimiter=',')
print('写入成功')
#csv文件的读取
wenjian=np.loadtxt('C:\\Users\86666\Desktop\python文件处理\9.csv',dtype=np.int32,delimiter=',')
print(wenjian)

结果:

 写入成功

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
#多维数组的储存
hu=np.arange(36).reshape(2,3,6)
hu.tofile('C:\\Users\86666\Desktop\python文件处理\qw.dat',sep=',',format='%d')
print('写入成功')
#多维数组的读取
shu=np.fromfile('C:\\Users\86666\Desktop\python文件处理\qw.dat',dtype=int,sep=',').reshape(hu.shape)
print(shu)

结果:

写入成功

[[[ 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 32 33 34 35]]]
#numpy数组便捷的读取方法
u=np.arange(12).reshape(2,6)
print(u)
#保存 np.save()
np.save('C:\\Users\86666\Desktop\python文件处理\wenjian.npy',u)
print('保存成功')
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
保存成功
#读取
ji3=np.load('C:\\Users\86666\Desktop\python文件处理\wenjian.npy')
print(ji3)
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]

 

你可能感兴趣的:(numpy基础)