numpy学习笔记
admin
2024-03-17 23:44:14

1. numpy概述(1)Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力(2)是其他数据分析及机器学习库的底层库(3)完全标准C语言实现,运行效率充分优化(4)开源免费2. numpy的核心:多维数组1.代码简洁2. 底层实现3. numpy基础(1)ndarray数组(2)内存中的ndarray对象元数据实际数据(3)ndarray数组对象的特点(4)ndarray数组对象的创建1.np.array(任何可被解释为numpy数组的逻辑结构)2.np.arange(起始值(0),终止值,步长(1))3.np.zeros(数组元素个数,dtype='类型')4.np.ones(数组元素个数,dtype='类型')5.np.zeros_like() 6.np.ones_like()4. ndarray对象属性的基本操作(1)数组的维度np.ndarray.shape1.维度基础操作(2)元素的类型:np.ndarray.dtype(3)数组元素的个数:np.ndarray.size(4)数组元素索引(下标)5.ndarray对象属性操作详解(1)numpy的内部基本数据类型(2)自定义复合类型

1. numpy概述

(1)Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力

(2)是其他数据分析及机器学习库的底层库

(3)完全标准C语言实现,运行效率充分优化

(4)开源免费

2. numpy的核心:多维数组

1.代码简洁

减少python代码中的循环

2. 底层实现

厚内核(C)+薄接口(Python),保证性能

3. numpy基础

(1)ndarray数组

用np.ndarray类的对象表示n维数组

import numpy as np
ary=np.array([1,2,3,4,5,6])
print(ary,type(ary))
print(ary.shape)
ary.shape=(2,3)
print(ary,ary.shape)
ary.shape=(6,)
print(ary)
print(ary*3)##每个都乘3
[1 2 3 4 5 6] 
(6,)
[[1 2 3][4 5 6]] (2, 3)
[1 2 3 4 5 6]
[ 3  6  9 12 15 18]

(2)内存中的ndarray对象

元数据

存储对目标数组的描述信息,如:dim count\dimensions\dtype\data等

实际数据

完整的数组数据

将实际数据与元数据分开存放,一方面提高了内存空间的使用效率,一方面减少对实际数据的访问频率,提高性能

(3)ndarray数组对象的特点

1.numpy数组是同质数组,所有元素的数据类型必须相同

2.下标从0开始

(4)ndarray数组对象的创建

1.np.array(任何可被解释为numpy数组的逻辑结构)

import numpy as np
a=np.array([1,2,3,4,5,6])
print(a)

2.np.arange(起始值(0),终止值,步长(1))

import numpy as np
a=np.arange(2,9,1)
print(a)

3.np.zeros(数组元素个数,dtype='类型')

4.np.ones(数组元素个数,dtype='类型')

5.np.zeros_like()

6.np.ones_like()

4. ndarray对象属性的基本操作

(1)数组的维度np.ndarray.shape

1.维度基础操作

import numpy as np
a=np.arange(1,9)
print(a,a.shape)
#改变维度
a.shape=(2,4)
print(a,a.shape)
​
[1 2 3 4 5 6 7 8] (8,)
[[1 2 3 4][5 6 7 8]] (2, 4)

(2)元素的类型:np.ndarray.dtype

import numpy as np
a=np.array([1,2,3,4,5,6])
#转换ary元素的类型
b=a.astype(float)
print(type(b),b,b.dtype)
​
 [1. 2. 3. 4. 5. 6.] float64
​
print(a.dtype)
#错误的修改数据类型方式
a.dtype='float32'
print(a,a.dtype)
int64
[[1.4e-45 0.0e+00 2.8e-45 0.0e+00 4.2e-45 0.0e+00 5.6e-45 0.0e+00][7.0e-45 0.0e+00 8.4e-45 0.0e+00 9.8e-45 0.0e+00 1.1e-44 0.0e+00]] float32
​
b=a.astype('float32')#要赋值给新的变量接收
print(b,b.dtype)
[[1.4e-45 0.0e+00 2.8e-45 0.0e+00 4.2e-45 0.0e+00 5.6e-45 0.0e+00][7.0e-45 0.0e+00 8.4e-45 0.0e+00 9.8e-45 0.0e+00 1.1e-44 0.0e+00]] float32

(3)数组元素的个数:np.ndarray.size

print(b.size,len(b))#len是最外层有多少个
16 2

(4)数组元素索引(下标)

c=np.arange(1,19)
c.shape=(3,2,3)
print(c)
#两种写法
print(c[0][1][0])
print(c[0,1,0])
#开头有几个中括号就是几维
[[[ 1  2  3][ 4  5  6]]
​[[ 7  8  9][10 11 12]]
​[[13 14 15][16 17 18]]]
4
4
​
#通过索引把所有元素遍历出来
for i in range(c.shape[0]):#shape返回的是元组for j in range(c.shape[1]):for k in range(c.shape[2]):print(c[i,j,k])1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
•

5.ndarray对象属性操作详解

(1)numpy的内部基本数据类型

相关内容

热门资讯

人民币,会升破6.8吗? 人民币汇率在马年伊始连续两日延续强势,在岸及离岸汇率双双为2023年4月以来最高水平。多家机构判断,...
冬残奥会圣火传递在意大利都灵开... 山西晚报·山河+讯(特派意大利记者 李霈霈)当地时间2月24日晚(北京时间25日凌晨),2026年米...
688191复牌!终止重组,改... 虽然重组止步,但智洋创新选择了另一种方式入股灵明光子,并有望开展深度合作。 战略投资灵明光子 拥...
日韩股市高开高走,日经225指... 记者|黄胜 编辑|金冥羽杜波校对|段炼 2月26日,日韩股市高开,日经225指数开盘涨0.7%。韩国...
锦欣康养冲击港股IPO,202... 来源:独角兽早知道 综合 | 招股书 编辑 | Arti 据招股书,锦欣康养是中国庞大且快速增长的...