diff --git a/examples/type_conversion.rs b/examples/type_conversion.rs
index a419af740..cfcd7e564 100644
--- a/examples/type_conversion.rs
+++ b/examples/type_conversion.rs
@@ -11,7 +11,7 @@ fn main()
{
// Converting an array from one datatype to another is implemented with the
// `ArrayBase::mapv()` function. We pass a closure that is applied to each
- // element independently. This allows for more control and flexiblity in
+ // element independently. This allows for more control and flexibility in
// converting types.
//
// Below, we illustrate four different approaches for the actual conversion
diff --git a/src/impl_owned_array.rs b/src/impl_owned_array.rs
index 277b156b8..fb06f9656 100644
--- a/src/impl_owned_array.rs
+++ b/src/impl_owned_array.rs
@@ -176,7 +176,7 @@ impl Array
/// along the "growing axis". However, if the memory layout needs adjusting, the array must
/// reallocate and move memory.
///
- /// The operation leaves the existing data in place and is most efficent if one of these is
+ /// The operation leaves the existing data in place and is most efficient if one of these is
/// true:
///
/// - The axis being appended to is the longest stride axis, i.e the array is in row major
@@ -221,7 +221,7 @@ impl Array
/// along the "growing axis". However, if the memory layout needs adjusting, the array must
/// reallocate and move memory.
///
- /// The operation leaves the existing data in place and is most efficent if one of these is
+ /// The operation leaves the existing data in place and is most efficient if one of these is
/// true:
///
/// - The axis being appended to is the longest stride axis, i.e the array is in column major
@@ -510,7 +510,7 @@ where D: Dimension
/// along the "growing axis". However, if the memory layout needs adjusting, the array must
/// reallocate and move memory.
///
- /// The operation leaves the existing data in place and is most efficent if `axis` is a
+ /// The operation leaves the existing data in place and is most efficient if `axis` is a
/// "growing axis" for the array, i.e. one of these is true:
///
/// - The axis is the longest stride axis, for example the 0th axis in a C-layout or the
@@ -566,7 +566,7 @@ where D: Dimension
/// along the "growing axis". However, if the memory layout needs adjusting, the array must
/// reallocate and move memory.
///
- /// The operation leaves the existing data in place and is most efficent if `axis` is a
+ /// The operation leaves the existing data in place and is most efficient if `axis` is a
/// "growing axis" for the array, i.e. one of these is true:
///
/// - The axis is the longest stride axis, for example the 0th axis in a C-layout or the
diff --git a/src/impl_ref_types.rs b/src/impl_ref_types.rs
index bfdfa27f9..108ac68bf 100644
--- a/src/impl_ref_types.rs
+++ b/src/impl_ref_types.rs
@@ -16,7 +16,7 @@
//! Because raw views do not meet `S: Data`, they cannot dereference to `ArrayRef`; furthermore,
//! technical limitations of Rust's compiler means that `ArrayBase` cannot have multiple `Deref` implementations.
//! In addition, shared-data arrays do not want to go down the `Deref` path to get to methods on `RawRef`
-//! or `LayoutRef`, since that would unecessarily ensure their uniqueness.
+//! or `LayoutRef`, since that would unnecessarily ensure their uniqueness.
//!
//! To mitigate these problems, `ndarray` also provides `AsRef` and `AsMut` implementations as follows:
//! 1. `ArrayBase` implements `AsRef` to `RawRef` and `LayoutRef` when `S: RawData`
diff --git a/src/lib.rs b/src/lib.rs
index baa62ca5b..6a5ea8280 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1585,7 +1585,7 @@ pub type ArcArray = ArrayBase, D>;
///
/// + [Constructor Methods for Owned Arrays](ArrayBase#constructor-methods-for-owned-arrays)
/// + [Methods For All Array Types](ArrayBase#methods-for-all-array-types)
-/// + Dimensionality-specific type alises
+/// + Dimensionality-specific type aliases
/// [`Array1`],
/// [`Array2`],
/// [`Array3`], ...,