numpy.str_转int
时间: 2023-12-31 19:04:35 浏览: 100
可以使用 `numpy` 库的 `astype()` 方法将 `numpy.str_` 类型转换为 `int` 类型。示例代码如下:
```python
import numpy as np
# 创建一个包含字符串的 numpy 数组
str_arr = np.array(['1', '2', '3', '4', '5'])
# 将字符串数组转换为整数数组
int_arr = str_arr.astype(int)
print(int_arr)
```
输出结果为:
```
[1 2 3 4 5]
```
需要注意的是,如果字符串数组中包含非数字字符,转换时会报错。
相关问题
def __getitem__(self, index): # 把numpy转换为Tensor txt=torch.from_numpy(np.array(self.Data[index])) label=torch.tensor(np.array(self.Label[index])) return txt,label出现can't convert np.ndarray of type numpy.str_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool.问题怎么解决
这个问题通常是由于尝试将一个类型为 `numpy.str_` 类型的数组转换为不支持该类型的数组类型,例如 `float64` 或 `int32`。要解决这个问题,可以尝试以下几种方法:
1. 将 `numpy.str_` 类型的数组转换为支持该类型的数组类型。例如,可以使用 `astype()` 方法将数组的类型转换为 `numpy.unicode_` 类型,然后再转换为其他支持的类型。例如:
```
import numpy as np
arr = np.array(['1', '2', '3'], dtype=np.str_)
arr = arr.astype(np.unicode_)
arr = arr.astype(np.int32)
```
2. 检查输入数据的格式和类型。如果输入数据的格式和类型不正确,可以考虑对其进行预处理或转换,以确保其与所使用的函数或模型兼容。
3. 如果使用的是 PyTorch,可以使用 `torch.from_numpy()` 方法将 `numpy.ndarray` 类型数据转换为 `torch.Tensor` 类型数据。例如:
```
import numpy as np
import torch
arr = np.array(['1', '2', '3'], dtype=np.str_)
tensor = torch.from_numpy(arr.astype(np.unicode_).astype(np.int32))
```
希望这些方法能够帮助您解决问题。
翻译代码: class AutocorrelationTest(Test):def init(self, seq_length: int ,shift: int = 1): # Generate base Test class self._shift = shift super(AutocorrelationTest, self).init(“Autocorrelation”, 0.01, seq_length) def _execute(self, bits: numpy.ndarray): """ Overridden method of Test class: check its docstring for further information. """ original_vector : numpy.ndarray = bits[:bits.size - self._shift] shifted_vector: numpy.ndarray = numpy.roll(bits, -self._shift)[:bits.size - self._shift] result_vector: numpy.ndarray = numpy.bitwise_xor(original_vector, shifted_vector) # Compute ones int result vector ones: int = numpy.count_nonzero(result_vector) tmp: float = 2 * (ones - (bits.size - self._shift) / 2.0) / math.sqrt(bits.size - self._shift) # Compute score score: float = math.erfc(abs(tmp) / (math.sqrt(2.0))) # Compute q_value q_value: float = math.erfc(tmp / (math.sqrt(2.0))) / 2.0 # Return result if score >= self.significance_value: return Result(self.name, True, numpy.array([score]), numpy.array([q_value])) return Result(self.name, False, numpy.array([score]), numpy.array([q_value])) def repr(self) -> str: return f’{self.name} (k={self._shift})
这段代码定义了一个类AutocorrelationTest,继承自Test类。它有两个参数:seq_length表示序列的长度,shift表示计算自相关系数时的偏移值,默认为1。在类的构造函数__init__中进行初始化。
阅读全文