python - np.insert 问题。我无法插入所有字符串(python3.7;numpy1.19.2)
问题描述
我是python的初学者。(我英文不好)我想用pandas来执行一些excel文件。
import numpy as np
Res = [['CS管理','教師管理','1']]
Res = np.insert(Res, 0, values='Administrator', axis=1)
print(Res)
期望是
[['Administrator' 'CS管理' '教師管理' '1']]
输出是
[['Admi' 'CS管理' '教師管理' '1']]
我应该怎么处理?期待你的答复
解决方案
Res
是一个包含 4 个字符长的字符串的数组:
In [87]: Res = np.array([['CS管理','教師管理','1']])
In [88]: Res
Out[88]: array([['CS管理', '教師管理', '1']], dtype='<U4')
from 的结果insert
仍然具有 'U4' dtype,因此它会截断插入。
In [89]: np.insert(Res, 0, values='Administrator', axis=1)
Out[89]: array([['Admi', 'CS管理', '教師管理', '1']], dtype='<U4')
如果我们从更长的开始dtype
:
In [99]: Res = np.array([['CS管理','教師管理','1']], 'U15')
In [100]: Res
Out[100]: array([['CS管理', '教師管理', '1']], dtype='<U15')
In [101]: np.insert(Res, 0, values='Administrator', axis=1)
Out[101]: array([['Administrator', 'CS管理', '教師管理', '1']], dtype='<U15')
另一种方法是可变长度object
dtype:
In [102]: Res = np.array([['CS管理','教師管理','1']], object)
In [103]: Res
Out[103]: array([['CS管理', '教師管理', '1']], dtype=object)
In [104]: np.insert(Res, 0, values='Administrator', axis=1)
Out[104]: array([['Administrator', 'CS管理', '教師管理', '1']], dtype=object)
一个是否比另一个更好可能取决于您正在进行的进一步处理。
由于您在开始时添加了新字符串,因此连接也一样好:
In [106]: Res = np.array([['CS管理','教師管理','1']])
In [108]: np.concatenate((np.array([['Administrator']]),Res), axis=1)
Out[108]: array([['Administrator', 'CS管理', '教師管理', '1']], dtype='<U13')
推荐阅读
- mysql - SQL Query 将数据库上的所有表名与 MySQL 联合
- python - 无法在 Azure Edge 中执行模块到模块的通信
- java - 如何查看并添加到 java spring boot 项目中引用的库中的日志?
- outlook - Outlook 插件 SSO + onSend 示例
- c# - ILMerge - 使用通配符并指定主程序集
- c# - TextBox 中的文本在一行中(不换行)
- macos - 有没有人使用 Intune 将 CrowdStrike Falcon 传感器推到 macOS-BigSur 上?
- python - 如何使用 pandasGUI 实时刷新数据帧(没有“删除”和“添加”功能)
- php - 将一个大型 MySQL 查询拆分为多个较小的查询是否有助于减轻表锁定/强制脚本“让步”给其他 PHP 脚本?
- winapi - 可以利用 VirtualProtect 来提高性能吗?