numpy基础知识

文章目录

  • 安装numpy
  • numpy的ndarray对象
    • ndarray 和 list 效率比较
    • 创建一/二维数组
    • ndarray的常用属性
    • 调整数组形状
    • ndarray转list
  • numpy的数据类型
  • 数组的运算
    • 数组和数的计算
    • 数组和数组的计算
  • 数组的轴
  • 数组的索引和切片
  • 数组的与或非和三目运算符
  • numpy的插入、删除、去重
    • 插入
    • 删除
    • 去重
  • numpy的运算公式
  • 数组的拼接和分割
    • 拼接
    • 分割
  • 数组中的nan和inf
  • 数组转置
  • 轴交换和轴滚动
    • 轴交换
    • 轴滚动
  • 读取csv数据

安装numpy

pip install numpy

numpy的ndarray对象

ndarray 和 list 效率比较

import numpy as np
import time
import randoma = []
for i in range(100000000):a.append(random.random())
t1 = time.time()
sum1 = sum(a)
t2 = time.time()b = np.array(a)
t4 = time.time()
sum2 = np.sum(b)
t5 = time.time()
print("list处理一个亿的速度为:  " + str(t2 - t1))
print("numpy处理一个亿的速度为:  " + str(t5 - t4))

在这里插入图片描述
注:numpy的大部分代码都是C语言写的,底层算法设计有优异的性能

创建一/二维数组

import numpy as np# 创建一维数组
print("方式一------------np.array(list)----------------------")
list = [1, 2, 3]
oneArray = np.array(list)
print(type(oneArray))
print(oneArray)  # [1 2 3]   注意和列表的区别  没有 ,print("方式二------------np.array([4, 5, 6])----------------------")
oneArray1 = np.array([4, 5, 6])
print(type(oneArray1))
print(oneArray1)print("方式三---------------np.array(range(10))-------------------")
oneArray2 = np.array(range(10))
print(type(oneArray2))
print(oneArray2)print("方式四---------------np.arange()-------------------")
oneArray3 = np.arange(0,10,2)
print(type(oneArray3))
print(oneArray3)# 创建二维数组
print("二维数组--------------------------------------------")
arr = [[1,2,3],[4,5,6],[7,8,9]]
twoArray = np.array(arr)
print(type(twoArray))
print(twoArray)

在这里插入图片描述

ndarray的常用属性

import numpy as np# 看ndarray的各种属性
list1 = [[1, 2], [3, 4], [5, 6], [7, 8]]twoArray = np.array(list1)
print(twoArray)# 获取数组的维度(注意  和函数的参数很像)
print("维度--------------------- ndim ------------------------------------ ")
print(twoArray.ndim)# 形状(行,列)
print("形状--------------------- shape ------------------------------------ ")
print(twoArray.shape)# 有多少元素
print("元素个数--------------------- size ------------------------------------ ")
print(twoArray.size)

在这里插入图片描述

调整数组形状

import numpy as npfour = np.array([[1, 2, 3], [4, 5, 6]])four1 = four  # 直接 = 相当于引用的同一个对象(id)
print(id(four))
print(id(four1))
print(four)
print("---" * 20)four3 = four.copy() # ndarray.copy()  id不同  不是一个对象
print(id(four))
print(id(four3))
print("---" * 20)# shape  直接改变 four 和 four1 的形状
four.shape = (3, 2)
print(four)
print(four1)
print("---" * 20)# reshape 直接返回一个新数组
four2 = four1.reshape(2, 3)
print(four1)  # reshape four1 和 four 不变
print(four2)
print("---" * 20)# 将多维数组变成一维数组  flatten(order='F/C')
# 'C' 按行展开      'F' 按列展开    默认是 'C'
five = four.reshape((6,), order='C')
print("按行展开为:"+ str(five))
six = four.flatten(order='F')
print("按列展开为:" + str(six))

在这里插入图片描述
在这里插入图片描述

ndarray转list

import numpy as np# 将ndarray数组转换成python列表
a = np.array([1, 2, 3, 4])
print(a)
print(type(a))
# tolist 快速转换成python列表
list_a = a.tolist()
print(list_a)
print(type(list_a))

在这里插入图片描述

numpy的数据类型

import numpy as np
import random# dtype 可以减少内存的使用  提高运算效率
# np.int8 - np.int64
f = np.array([1, 2, 3, 4, 5], dtype=np.int16)
print(f.itemsize)  # 占多少字节
print(f.dtype)  # 获取数据类型# 调整数据类型 astype
print("-------调整数据类型 astype ------------")
f1 = f.astype(np.int32)
print(f1.itemsize)
print(f1.dtype)print('-' * 50)# 小数
# float32 精度 6-7位    float64 精度 15-16位
print(round(random.random(), 2))  # round(xxx,y) 保留y位小数
arr = np.array([random.random() for i in range(10)])
print(arr)
print(arr.itemsize)
print(arr.dtype)print("-------调整数据类型 astype ------------")
arr1 = arr.astype(np.float32)
print(arr1)
print(arr1.itemsize)
print(arr1.dtype)# 取小数点后两位
print("------数组的所有元素都取小数点后两位 np.round(ndarray,2)---------")
print(np.round(arr, 2))

在这里插入图片描述

数组的运算

数组和数的计算

import numpy as np# 数组(ndarray)   的加减乘除
t = np.arange(24).reshape((6, 4))
print(t)
print("*" * 20)
t1 = t.tolist()
print(t + 2)
print(type(t1))
# print(t1+2)   # python列表不能 加减乘除
print("*" * 20)
print(t * 2)
print("*" * 20)
print(t // 2)  # 整除 //

在这里插入图片描述
在这里插入图片描述

数组和数组的计算

import numpy as np# 维度相同的两个数组可以计算
arr1 = np.arange(12).reshape(3, 4)
arr2 = np.arange(12).reshape(3, 4)
print(arr1 + arr2)
print("--" * 30)# 维度 必须有一个相同且(另一个是0或者1才行) 才能 加减乘除
t1 = np.arange(24).reshape(4, 6)
t2 = np.arange(6).reshape(1, 6)
# t4 = np.arange(6).reshape(6)
# t3 = np.arange(18).reshape(3,6)   不能和 t1运算  只能和t2运算print(t1 + t2)
# print(t1+t4)   和 t1+t2 相同

在这里插入图片描述

数组的轴

在这里插入图片描述

在这里插入图片描述

import numpy as np# arange(a,b) 左闭右开
# axis轴   按哪个轴相加  最后的结果shape是去掉该轴剩余的情况
t = np.arange(1, 19).reshape((3, 2, 3))  # 18 = 3 * 2 * 3
print(t)
print("*" * 20)
a = np.sum(t, axis=0)
print(a)
print(a.shape)  # (2, 3)
print("*" * 20)
b = np.sum(t, axis=1)
print(b)
print(b.shape)  # (3, 3)
print("*" * 20)
c = np.sum(t, axis=2)
print(c)
print(c.shape)  # (3, 2)

在这里插入图片描述
在这里插入图片描述

数组的索引和切片

import numpy as npt = np.arange(24).reshape(4, 6)
print(t)
# 注意t[a:b] a能取到 b取不到
print("*" * 20)
print(t[1])  # 取一行
print("*" * 20)
print(t[1:])  # 取连续的多行
print("*" * 20)
print(t[1:3])  # 取连续多行
# print(t[1:3,:]) # 取连续多行   和上面那句效果一样
print("*" * 20)
print(t[[0, 2, 3]])  # 取不连续的多行  注意两个[[]]
# print(t[[0, 2, 3], :])  # 取不连续的多行  注意两个[[],:]    和上面那句效果一样
print("-" * 60)
print(t[:, 1])  # 取一列
print("*" * 20)
print(t[:, 1:])  # 取连续多列
print("*" * 20)
print(t[:, [0, 2, 4]])  # 取不连续多列
print("-" * 60)
print(t[2, 3])  # 取某行某列的值   注意python列表写法 py[2][3]
print("*" * 20)
print(t[[0, 1, 2], [1, 2, 4]])  # 取多个不连续的值 (0,1)(1,2)(2,4)位置的值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组的与或非和三目运算符

import numpy as npt = np.arange(24).reshape(4, 6)
print(t)
t1 = t.copy()
t2 = t.copy()
t3 = t.copy()
t[t < 10] = 0  # 把小于10的值改掉
print(t)
print("*" * 20)
t1[(t1 > 2) & (t1 < 6)] = 0  # 与  两个都满足
print(t1)
t2[(t2 < 2) | (t2 > 6)] = 0  # 或  满足一个就行
print(t2)
t3[~(t3 > 6)] = 0  # 非
print(t3)
print("---" * 20)# 三目运算符
# np.where(condition, x, y)  满足条件(condition)输出x,不满足条件输出y
score = np.array([[80, 88], [82, 81], [75, 81]])
result = np.where(score > 80, True, False)
print(result)

在这里插入图片描述
在这里插入图片描述

numpy的插入、删除、去重

插入

import numpy as np# append 在数组末尾添加数据
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
# 当axis轴无定义时,默认为None  返回值是一个一维数组
print(np.append(a, [7, 8, 9]))
print("--" * 20)
# 延轴0添加元素 [[]]
print(np.append(a, [[7, 8, 9]], axis=0))
print("--" * 20)
# 延轴1添加元素  [[]]
print(np.append(a, [[10, 11], [13, 14]], axis=1))
print("----------  下面是insert -------------------------")# insert 在插入 位置之前  (位置都是从0开始)
b = np.array([[1, 2], [3, 4], [5, 6]])
print(b)
print("未传递axis参数,在插入 位置之前(从左到右数)  输入数组会被展开")
print(np.insert(b, 3, [11, 12]))  # [ 1  2  3 11 12  4  5  6]
print("传递了axis参数,会广播 值数组 来配 输入数组")
print("延轴0广播")
print(np.insert(b, 2, [11, 12], axis=0))
print("延轴1广播")
print(np.insert(b, 1, [4], axis=1))

在这里插入图片描述
在这里插入图片描述

删除

import numpy as np# 数组中的删除
a = np.arange(12).reshape(3, 4)
print(a)
b = a.copy()
c = a.copy()
print("未传递axis参数,在删除之前输入数组会被展开")
print(np.delete(a, 5))
print("删除每一行中的第二列")
print(np.delete(b, 1, axis=1))
print("删除第三行(下标为2)")
print(np.delete(c, 2, axis=0))

在这里插入图片描述

去重

import numpy as np# 数组去重 unique
a = np.array([2, 3, 4, 1, 2, 5, 6, 7])
print(a)
print("第一个数组的去重值:")
b = np.unique(a)
print(b)
print("---" * 20)
# return_index  返回 新列表在 旧列表中的位置(下标)
c, indices = np.unique(a, return_index=True)
print(c, indices)
print("---" * 20)
# return_inverse  返回 旧列表元素在 新列表中的位置(下标)
d, indices = np.unique(a, return_inverse=True)
print(d, indices)
print("---" * 20)
# return_counts  返回去重数组中的元素在原数组中出现次数
e, indices = np.unique(a, return_counts=True)
print(e, indices)

在这里插入图片描述

numpy的运算公式

import numpy as npscore = np.array([[80, 88], [12, 81], [75, 80]])
print(score)
print(np.max(score))
print(np.max(score, axis=0))  #  [82 88]
print(np.max(score, axis=1))  #  [88 82 81]
# np.min 最小值类似最大值
print("---" * 20)
# 第一个参数和第二个参数比  返回大的 注:会把原先的列表值改变
print(np.maximum([-2, -1, 0, 1, 2], 0))
# 第一个参数和第二个参数比  返回小的 注:会把原先的列表值改变
print(np.minimum([-2, -1, 0, 1, 2], 0))
# 第一个参数和第二个参数比  返回大的 注:会把原先的列表值改变
print(np.maximum([-2, -1, 0, 1, 2], [1, 2, 0, -1, -2]))
print("---" * 20)# 求平均值  np.mean
print(np.mean(score))
print("---" * 20)# 求前缀和
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.cumsum(0))  # 0轴  从上往下加
print(arr.cumsum(1))  # 1轴  从左往右加
print("---" * 20)# 求最小值索引
print(np.argmin(score, axis=0))  # [1 2]
print(np.min(score, axis=0))  # [12 80]
print("---" * 20)# 标准差
print(np.std(score, axis=0))# 极值
print(np.ptp(score, axis=None))

在这里插入图片描述
在这里插入图片描述
注: 求前缀和
在这里插入图片描述

数组的拼接和分割

拼接

import numpy as np# np.stack() 增加维数# 数组的拼接
a = np.array([[1, 2], [3, 4]])
b = np.array([[7, 8], [11, 12]])
# 延0轴[[7, 8]] 就行   延1轴[[7, 8], [11, 12]] 才行
print(np.concatenate((a, b), axis=0))
print(np.concatenate((a, b), axis=1))
print("---" * 20)# 根据轴进行堆叠
print(np.stack((a, b), axis=0))
print(np.stack((a, b), axis=0).shape)print(np.stack((a, b), axis=1))
print(np.stack((a, b), axis=1).shape)
print("---" * 20)# 矩阵垂直拼接
v1 = [[0, 1, 2], [3, 4, 5]]
v2 = [[10, 11, 12], [13, 14, 15]]
print("矩阵垂直拼接为:")
print(np.vstack((v1, v2)))
print("矩阵水平拼接为:")
print(np.hstack((v1, v2)))

在这里插入图片描述
在这里插入图片描述

分割

import numpy as np# 数组的分割
arr = np.arange(9).reshape(3, 3)
print(arr)
print("将数组分成三个大小相等的子数组")
print(np.split(arr, 3))# 水平分割数组
print(np.hsplit(arr, 3))# 垂直分割数组
print(np.vsplit(arr, 3))

在这里插入图片描述

数组中的nan和inf

import numpy as np# inf  正数除以0    -inf  负数除以零   都是无穷大
# nan  -->  not a number
# 注意:  只有float才有 nan和inf
a = np.nan
b = np.inf
print(a, type(a))
print(b, type(b))t = np.arange(24, dtype=float).reshape(4, 6)
print(t)
t[3, 4] = np.nan
t[2, 4] = np.nan
print(t)
print("--" * 20)
# nan 不相等
print(np.nan == np.nan)  # False
print(np.nan != np.nan)  # True# inf相等
print(np.inf == np.inf)  # True
print(-np.inf == np.inf)  # False
print(-np.inf == -np.inf)  # True
print(np.inf != np.inf)  # False
print("--" * 20)
print(np.count_nonzero(t))  # 判断非0个数  nan也是非0
print(t != t)
print(np.count_nonzero(t != t))  # 判断nan的个数  因为只有 nan!=nan 为非0 True
# 将nan替换为0
# t[np.isnan(t)] = 0
# # t[t!=t] = 0   # 只有为 True 才进行替换
# print(t)
print("---" * 20)
# 将 nan 替换为这一列的平均值
for i in range(t.shape[1]):temp_col = t[:, i]  # 获取当前列数据# 判断当前列是否有nannan_num = np.count_nonzero(temp_col != temp_col)if nan_num:  # 条件成立说明nan_num不为0# 获取不为nan的所有值并且存在一个列表里temp_col_not_nan = temp_col[temp_col == temp_col]# 将nan替换为这一列的平均值 np.meantemp_col[np.isnan(temp_col)] = np.mean(temp_col_not_nan)# temp_col[temp_col != temp_col] = np.mean(temp_col_not_nan)
print(t)

在这里插入图片描述
在这里插入图片描述

数组转置

import numpy as np# 转置和轴滚动
a = np.arange(12).reshape(3, 4)
print(a)
print("np.transpose(ndarrary)  转置后为:")
print(np.transpose(a))
print("***" * 20)
b = np.arange(12).reshape(3, 4)
print(b)
print("ndarrary.T  转置后为:")
print(b.T)

在这里插入图片描述

轴交换和轴滚动

轴交换

t1 = np.arange(24).reshape((2, 3, 4))
print(t1.shape)
print(t1)
print("交换0轴和2轴")
t1 = np.swapaxes(t1, 0, 2)
print(t1.shape)
print(t1)

在这里插入图片描述
在这里插入图片描述

轴滚动

# 轴滚动
# rollaxis(ndarrary, b, start=a)  轴b的位置 必须大于 轴a的位置
# 相当于 b 往 a 的位置滚动
a = np.ones((3, 4, 5, 6))  # ones 都填充为 float的 1.
print(np.rollaxis(a, 2, start=0).shape)  # (5, 3, 4, 6)
print(np.rollaxis(a, 2, start=1).shape)  # (3, 5, 4, 6)
# print(np.rollaxis(a, 1, start=2).shape)  # (3, 4, 5, 6)  轴的大小不对 不滚动

在这里插入图片描述

读取csv数据

在这里插入图片描述

import numpy as np# numpy 读取数据
us_file_path = "./archive/GBvideos.csv"# delimiter 分隔符 默认为 空格   unpack 默认为False   文件里不能有任何字符串
t2 = np.loadtxt(us_file_path, delimiter=",", skiprows=True, encoding="utf8")
print(t2)
print(t2.shape)

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/94448.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高并发内存池(threadcache)[1]

高并发内存池 分层处理 thread cache 定义一个公共的FreeList管理切分的小空间 static void*& NextObj(void* obj) {return *(void**)obj; }//管理切分好的小对象的自由链表 class FreeList { public:void Push(void* obj){assert(obj);//头插//*(void**)obj _freeLis…

Linux工具【2】(调试器gdb、项目自动化构建工具make/Makefile)

gdb、make/Makefile 引言调试器gdb介绍常用指令 自动化构建工具make/Makefile介绍使用依赖关系与依赖方法编辑Makefile伪目标 总结 引言 在上一篇文章中介绍了Linux中的编辑器vim与编译器gcc与g&#xff1a; 戳我看vim与gcc详解哦 在本篇文章中将继续来介绍Linux中的工具&…

js ajax 国内快速 映像

ajax 快速 映像 https://www.bootcdn.cn/ axios入门和axios基本请求方式 https://blog.csdn.net/m0_68997646/article/details/127438174 使用 jsDelivr CDN: <script src"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>因为我们国…

【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理

文章标题 简介一&#xff0c;参数列表二&#xff0c;使用介绍1. 连接远程服务器2. 使用SSH密钥登录2.1 生成密钥对2.2 将公钥复制到远程服务器 3. 端口转发3.1 本地端口转发3.2 远程端口转发 4. X11转发5. 文件传输与远程命令执行5.1 文件传输5.1.1 从本地向远程传输文件5.1.2 …

vue使用jsplumb 流程图

安装jsPlumb库&#xff1a;在Vue项目中使用npm或yarn安装jsPlumb库。 npm install jsplumb 创建一个Vue组件&#xff1a;创建一个Vue组件来容纳jsPlumb的功能和呈现。 <template><div style"margin: 20px"><div style"margin: 20px">&l…

图数据库_Neo4j和SpringBoot整合使用_创建节点_删除节点_创建关系_使用CQL操作图谱---Neo4j图数据库工作笔记0009

首先需要引入依赖 springboot提供了一个spring data neo4j来操作 neo4j 可以看到它的架构 这个是下载下来的jar包来看看 有很多cypher对吧 可以看到就是通过封装的驱动来操作graph database 然后开始弄一下 首先添加依赖

Python爬虫性能优化:多进程协程提速实践指南

各位大佬们我又回来了&#xff0c;今天我们来聊聊如何通过多进程和协程来优化Python爬虫的性能&#xff0c;让我们的爬虫程序6到飞起&#xff01;我将会提供一些实用的解决方案&#xff0c;让你的爬虫速度提升到新的高度&#xff01; 1、多进程提速 首先&#xff0c;让我们来看…

视频汇聚集中存储EasyCVR平台调用iframe地址视频无法播放,该如何解决?

安防监控视频汇聚平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝…

Java算法_ 检查对称树(LeetCode_Hot100)

题目描述&#xff1a;给你一个二叉树的根节点 &#xff0c; 检查它是否轴对称。root 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/8/17 8:47* 4*/ public class SymmetricTree {static class…

C语言入门_Day 6布尔数与比较运算

目录 前言 1.布尔数 2.比较运算 3.易错点 4.思维导图 前言 除了算术计算以外&#xff0c;编程语言中还会大量使用比较运算&#xff0c;并会根据比较运算的结果是“真”还是“假”&#xff0c;来执行不同的代码。 当你想买一杯奶茶&#xff0c;准备支付的时候&#xff0c;支…

VisualStudio打包项目文件为.exe安装包

前言&#xff1a; 使用扩展&#xff1a;install Projects 注意事项&#xff1a;打包项目前&#xff0c;确保项目能正常运行&#xff0c;不然打包毫无意义。 一、安装扩展 打开vs软件->扩展->管理扩展->搜索install Projects->安装->重启软件 二、制作安装包&a…

【uni-app报错】获取用户收货地址uni.chooseAddress()报错问题

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因&#xff1a; 小程序配置 / 全局配置 (qq.com) 解决&#xff1a; 登录小程序后台申请接口 按照流程申请即可 在项目根目录中找到 manifest.json 文件&#xff0c;在左侧导航栏选择源码视图&a…

postgresql 分组

postgresql 数据汇总 分组汇总聚合函数注意 总结 分组统计总结 高级分组总结 分组汇总 聚合函数 聚合函数&#xff08;aggregate function&#xff09;针对一组数据行进行运算&#xff0c;并且返回单个结果。PostgreSQL 支持以下常见的聚合函数&#xff1a; • AVG - 计算一…

小程序swiper一个轮播显示一个半内容且实现无缝滚动

效果图&#xff1a; wxml&#xff08;无缝滚动&#xff1a;circular"true"&#xff09;&#xff1a; <!--components/tool_version/tool_version.wxml--> <view class"tool-version"><swiper class"tool-version-swiper" circul…

树莓派+WordPress:打造专属博客,内网穿透轻松发布到公网!

概述 在本次教程里&#xff0c;我们将在树莓派上搭建一个Wordpress博客站点&#xff0c;开始博客时代&#xff0c;记录生活点滴。同时做内网穿透将博客发布上线&#xff0c;让互联网用户都可以访问到&#xff0c;无需公网ip&#xff0c;也无需购买云服务器&#xff0c;简单快速…

【系统架构设计专业技能 · 软件工程之系统分析与设计(二)【系统架构设计师】

系列文章目录 系统架构设计专业技能 软件工程&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;…

【【STM32----I2C通信协议】】

STM32----I2C通信协议 我们会发现I2C有两根通信线&#xff1a; SCL和SDA 同步 半双工 带数据应答 支持总线挂载多设备&#xff08;一主多从&#xff0c;多主多从&#xff09; 硬件电路 所有I2C设备的SCL连在一起&#xff0c;SDA连在一起 设备的SCL和SDA均要配置成开漏输出模式 …

msvcr120.dll丢失怎么修复,介绍几种最简单的修复方法

当您在运行某个程序时遇到msvcr120.dll丢失的错误提示时&#xff0c;可能无法正常启动或执行该程序。msvcr120.dll是Microsoft Visual C Redistributable中的一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;它是一种运行时库&#xff08;Runtime Library&#xff0…

VMWARE15.5.7安装RedHat 7.9黑屏

在win7上面最高版本为vmware15.5.7 我安装后&#xff0c;安装成功了redhat5.5 但是因为操作系统有点老。安装其他软件时遇到问题。想改为7.0以上linux。 但是遇到了问题。安装时&#xff0c;一直黑屏。包括再安装5.5也是同样效果。 找了很多方案都无济于事。后面搜到一个方案…

自动驾驶,一次道阻且长的远征|数据猿直播干货分享

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在6月的世界人工智能大会上&#xff0c;马斯克在致辞中宣称&#xff0c;到2023年底&#xff0c;特斯拉便可实现L4级或L5级的完全自动驾驶&#xff08;FSD&#xff09;。两个月之后&#xff0c;马斯克又在X社交平台上发言&am…